Ricerca nel sito web

Come installare Ubuntu tramite server PXE utilizzando sorgenti DVD locali


PXE o Preboot eXecution Environment è un meccanismo server-client che istruisce un computer client ad avviarsi dalla rete.

In questa guida mostreremo come installare Ubuntu Server tramite un server PXE con sorgenti HTTP locali specchiate dall'immagine ISO del server Ubuntu tramite Apache web server. Il server PXE utilizzato in questo tutorial è Dnsmasq Server.

Requisiti:

  1. Installazione di Ubuntu Server 16.04 o 17.04
  2. Un'interfaccia di rete configurata con indirizzo IP statico
  3. Immagine ISO di Ubuntu Server 16.04 o 17.04

Passaggio 1: installa e configura il server DNSMASQ

1. Per configurare il server PXE, al primo passaggio accedi con l'account root o un account con privilegi root e installa il pacchetto Dnsmasq in Ubuntu emettendo il seguente comando.

apt install dnsmasq

2. Successivamente, esegui il backup del file di configurazione principale dnsmasq e quindi inizia a modificare il file con le seguenti configurazioni.

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

Aggiungi la seguente configurazione al file dnsmasq.conf.

interface=ens33,lo
bind-interfaces
domain=mypxe.local

dhcp-range=ens33,192.168.1.230,192.168.1.253,255.255.255.0,1h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-option=6,8.8.8.8
server=8.8.4.4
dhcp-option=28,10.0.0.255
dhcp-option=42,0.0.0.0

dhcp-boot=pxelinux.0,pxeserver,192.168.1.14

pxe-prompt="Press F8 for menu.", 2
pxe-service=x86PC, "Install Ubuntu 16.04 from network server 192.168.1.14", pxelinux
enable-tftp
tftp-root=/srv/tftp

Nel file di configurazione precedente sostituire di conseguenza le seguenti righe.

  • interfaccia Sostituisci con l'interfaccia di rete della tua macchina.
  • dominio: sostituiscilo con il tuo nome di dominio.
  • intervallo DHCP: definisci il tuo intervallo di rete affinché DHCP allochi gli IP a questo segmento di rete e per quanto tempo dovrebbe essere concesso un indirizzo IP per un client.
  • dhcp-option=3: il tuo IP gateway.
  • dhcp-option=6 IP server DNS: è possibile definire diversi IP DNS.
  • server: indirizzo IP del forwarder DNS.
  • dhcp-option=28: il tuo indirizzo di trasmissione della rete.
  • dhcp-option=42 – Server NTP – utilizzare 0.0.0.0 L'indirizzo è per autoreferenzialità.
  • dhcp-boot – il file di avvio pxe e l'indirizzo IP del server PXE (qui pxelinux.0 e indirizzo IP della stessa macchina).
  • pxe-prompt: gli utenti possono premere il tasto F8 per accedere al menu PXE o attendere 2 secondi prima di passare automaticamente al menu PXE.
  • pxe=service: utilizza x86PC per architetture a 32/64 bit e inserisci una richiesta di descrizione del menu tra virgolette. Altri tipi di valori possono essere: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI e X86-64_EFI.
  • enable-tftp: abilita il server TFTP integrato.
  • tftp-root: il percorso di sistema per i file di avvio di rete.

3. Inoltre, dopo aver finito di modificare il file di configurazione dnsmasq, crea la directory per i file PXE netboot immettendo il comando seguente e riavviare il demone dnsmasq per applicare le modifiche. Controlla lo stato del servizio DNSMASQ per vedere se è stato avviato.

mkdir /srv/tftp
systemctl restart dnsmasq.service
systemctl status dnsmasq.service

Passaggio 2: installare i file di avvio netto TFTP

4. Nel passaggio successivo, prendi l'ultima versione dell'immagine ISO del server Ubuntu per l'architettura a 64 bit immettendo il seguente comando.

wget http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso

5. Dopo aver scaricato l'ISO del server Ubuntu, monta l'immagine nella directory /mnt ed elenca il contenuto della directory montata eseguendo i comandi seguenti.

mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/
ls /mnt/

6. Successivamente, copia i file netboot dall'albero montato di Ubuntu al percorso di sistema tftp immettendo il comando seguente. Inoltre, elenca il percorso del sistema tftp per vedere i file copiati.

cp -rf /mnt/install/netboot/* /srv/tftp/
ls /srv/tftp/

Passaggio 3: preparare i file di origine dell'installazione locale

7. Le fonti di installazione della rete locale per il server Ubuntu verranno fornite tramite il protocollo HTTP. Innanzitutto, installa, avvia e abilita il server web Apache emettendo i seguenti comandi.

apt install apache2
systemctl start apache2
systemctl status apache2
systemctl enable apache2

8. Quindi, copia il contenuto del DVD di Ubuntu montato nel percorso radice web del server Web Apache eseguendo i comandi seguenti. Elenca il contenuto del percorso root web di Apache per verificare se l'albero montato ISO di Ubuntu è stato completamente copiato.

cp -rf /mnt/* /var/www/html/
ls /var/www/html/

9. Successivamente, apri la porta HTTP nel firewall e accedi all'indirizzo IP del tuo computer tramite un browser (http://192.168.1.14/ubuntu) per verificare se può raggiungere le fonti tramite il protocollo HTTP.

ufw allow http

Passaggio 4: impostare il file di configurazione del server PXE

10. Per poter ruotare rootfs tramite PXE e fonti locali, Ubuntu deve essere istruito tramite un file di preconfigurazione. Crea il seguente file local-sources.seed nel percorso root del documento del tuo server web con il seguente contenuto.

nano /var/www/html/ubuntu/preseed/local-sources.seed

Aggiungi la riga seguente al file local-sources.seed.

d-i live-installer/net-image string http://192.168.1.14/ubuntu/install/filesystem.squashfs

Qui, assicurati di sostituire l'indirizzo IP di conseguenza. Dovrebbe essere l'indirizzo IP in cui si trovano le risorse Web. In questa guida le origini Web, il server PXE e il server TFTP sono ospitati sullo stesso sistema. In una rete affollata potresti voler eseguire PXE, TFTP e servizi Web su macchine separate per migliorare la velocità della rete PXE.

11. Un server PXE legge ed esegue i file di configurazione situati nella directory root TFTP pxelinux.cfg in questo ordine: file GUID, file MAC e file predefinito.

La directory pxelinux.cfg è già creata e popolata con i file di configurazione PXE richiesti perché in precedenza abbiamo copiato i file netboot dall'immagine ISO montata su Ubuntu.

Per aggiungere il file di istruzioni preimpostato sopra all'etichetta di installazione di Ubuntu nel file di configurazione PXE, aprire il seguente file per la modifica emettendo il comando seguente.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg

Nel file di configurazione txt.cfg di Ubuntu PXE sostituire la seguente riga come illustrato nell'estratto seguente.

append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

Il file /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg dovrebbe avere il seguente contenuto globale:

default install
label install
	menu label ^Install Ubuntu 16.04 with Local Sources
	menu default
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
	menu label ^Command-line install
	kernel ubuntu-installer/amd64/linux
	append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

12. Nel caso in cui desideri aggiungere l'istruzione URL preimpostata al menu Ubuntu Rescue, apri il file seguente e assicurati di aggiornare il contenuto come illustrato nell'esempio seguente.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg

Aggiungi la seguente configurazione al file rqtxt.cfg.

label rescue
	menu label ^Rescue mode
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet

La riga importante che dovresti aggiornare è url=http://192.168.1.14/ubuntu/preseed/local-sources.seed che specifica l'indirizzo URL in cui si trova il file premuto nella tua rete.

13. Infine, apri il file Ubuntu pxe menu.cfg e commenta le prime tre righe per espandere la schermata di avvio PXE come illustrato nello screenshot seguente.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg

Commenta queste tre righe seguenti.

#menu hshift 13
#menu width 49
#menu margin 8

Passaggio 5: aprire le porte del firewall in Ubuntu

14. Esegui il comando netstat con privilegi di root per identificare le porte dnsmasq, tftp e web aperte in stato di ascolto sul tuo server, come illustrato nell'estratto seguente.

netstat -tulpn

15. Dopo aver identificato tutte le porte richieste, esegui i comandi seguenti per aprire le porte nel firewall ufw.

ufw allow 53/tcp
ufw allow 53/udp
ufw allow 67/udp
ufw allow 69/udp
ufw allow 4011/udp

Passaggio 6: installa Ubuntu con origini locali tramite PXE

16. Per installare il server Ubuntu tramite PXE e utilizzare le origini di installazione della rete locale, riavviare il client della macchina, istruire il BIOS ad avviarsi dalla rete e nella prima schermata del menu PXE scegliere la prima opzione come illustrato nella figura sotto le immagini.

17. La procedura di installazione deve essere eseguita normalmente. Quando il programma di installazione raggiunge la configurazione del Paese mirror dell'archivio Ubuntu, utilizza la freccia su della tastiera per passare alla prima opzione, che dice: inserisci le informazioni manualmente.

18. Premi il tasto [invio] per aggiornare questa opzione, elimina la stringa mirror e aggiungi l'indirizzo IP delle origini mirror del server web e premi Invio per continuare come illustrato nella immagine sotto.

http://192.168.1.14

19. Nella schermata successiva, aggiungi la directory dell'archivio mirror come mostrato di seguito e premi il tasto Invio per continuare con il processo di installazione e normalmente.

/ubuntu

20. Nel caso in cui desideri vedere informazioni su quali pacchetti vengono scaricati dal tuo mirror locale di rete, premi i tasti [CTRL+ALT+F2] per cambiare la console virtuale della macchina ed emettere il seguente comando.

tail –f /var/log/syslog

21. Al termine dell'installazione del server Ubuntu, accedi al sistema appena installato ed esegui il seguente comando con privilegi di root per aggiornare i pacchetti dei repository dalle fonti di rete locale ai mirror ufficiali di Ubuntu.

È necessario modificare i mirror per aggiornare il sistema utilizzando i repository Internet.

sudo sed –i.bak ‘s/192.168.1.14/archive.ubuntu.com/g’ /etc/apt/sources.list

Assicurati di sostituire l'indirizzo IP con l'indirizzo IP delle tue fonti web locali.

È tutto! Ora puoi aggiornare il tuo sistema server Ubuntu e installare tutto il software richiesto. L'installazione di Ubuntu tramite PXE e un mirror di origine della rete locale può migliorare la velocità di installazione e risparmiare larghezza di banda Internet e costi in caso di distribuzione di un gran numero di server in un breve periodo di tempo presso la propria sede.