Ricerca nel sito web

Configurazione di un "server di avvio di rete PXE" per più installazioni di distribuzione Linux in RHEL/CentOS 7


PXE Server – Preboot eXecution Environment – indica a un computer client di avviare, eseguire o installare un sistema operativo direttamente da un'interfaccia di rete, eliminando la necessità di masterizzare un CD/DVD o utilizzare un supporto fisico oppure, può facilitare il lavoro di installazione delle distribuzioni Linux sulla tua infrastruttura di rete su più macchine contemporaneamente.

Requisiti

  1. Procedura di installazione minima di CentOS 7
  2. RHEL 7 Procedura di installazione minima
  3. Configura l'indirizzo IP statico in RHEL/CentOS 7
  4. Rimuovere i servizi indesiderati in RHEL/CentOS 7
  5. Installa il server NTP per impostare l'ora di sistema corretta in RHEL/CentOS 7

Questo articolo spiegherà come installare e configurare un server PXE su RHEL/CentOS 7 x64-bit con repository di installazione locale con mirroring, fonti fornite dall'immagine ISO del DVD CentOS 7, con l'aiuto del server DNSMASQ.

Che fornisce servizi DNS e DHCP, il pacchetto Syslinux che fornisce bootloader per l'avvio dalla rete, TFTP-Server, che rende immagini avviabili disponibili per il download tramite rete utilizzando Trivial File Transfer Protocol (TFTP) e il server VSFTPD che ospiterà l'immagine DVD mirrorata montata in locale, che fungerà da RHEL ufficiale /CentOS 7 repository di installazione mirror da cui il programma di installazione estrarrà i pacchetti richiesti.

Passaggio 1: installa e configura DNSMASQ Server

1. Non c'è bisogno di ricordarti che è assolutamente necessario che una delle interfacce della tua scheda di rete, nel caso in cui il tuo server ponga più NIC, sia configurata con un indirizzo IP statico dello stesso intervallo IP a cui appartiene il segmento di rete che fornirà i servizi PXE.

Pertanto, dopo aver configurato il tuo indirizzo IP statico, aggiornato il sistema ed eseguito altre impostazioni iniziali, utilizza il seguente comando per installare il demone DNSMASQ.

yum install dnsmasq

2. Il file di configurazione principale predefinito di DNSMASQ situato nella directory /etc è autoesplicativo ma intende essere piuttosto difficile da modificare, a causa delle sue spiegazioni altamente commentate.

Per prima cosa assicurati di eseguire il backup di questo file nel caso in cui sia necessario rivederlo in seguito e, quindi, crea un nuovo file di configurazione vuoto utilizzando il tuo editor di testo preferito emettendo i seguenti comandi.

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

3. Ora, copia e incolla le seguenti configurazioni nel file dnsmasq.conf e assicurati di modificare le istruzioni spiegate di seguito in modo che corrispondano di conseguenza alle impostazioni di rete.

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Le dichiarazioni che è necessario modificare sono le seguenti:

  1. interfaccia – Interfacce che il server deve ascoltare e fornire servizi.
  2. bind-interfaces – Decommenta per eseguire il bind solo su questa interfaccia.
  3. dominio: sostituiscilo con il tuo nome di dominio.
  4. intervallo DHCP: sostituiscilo con l'intervallo IP definito dalla maschera di rete su questo segmento.
  5. dhcp-boot – Sostituisci l'istruzione IP con l'indirizzo IP della tua interfaccia.
  6. dhcp-option=3,192.168.1.1 – Sostituisci l'indirizzo IP con il gateway del segmento di rete.
  7. dhcp-option=6,92.168.1.1 – Sostituisci l'indirizzo IP con l'IP del tuo server DNS – è possibile definire diversi IP DNS.
  8. server=8.8.4.4 – Inserisci gli indirizzi IP dei tuoi forwarder DNS.
  9. dhcp-option=28,10.0.0.255 – Sostituisci l'indirizzo IP con l'indirizzo di trasmissione di rete, facoltativo.
  10. dhcp-option=42,0.0.0.0 – Inserisci i tuoi time server di rete – facoltativamente (0.0.0.0 L'indirizzo è per autoreferenzialità).
  11. pxe-prompt – Lascialo come predefinito – significa premere il tasto F8 per accedere al menu 60 con un tempo di attesa di secondi.
  12. 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.
  13. enable-tftp – Abilita il server TFTP integrato.
  14. tftp-root – Utilizza /var/lib/tftpboot – il percorso per tutti i file di avvio da rete.

Per altre opzioni avanzate riguardanti il file di configurazione, non esitate a leggere il manuale dnsmasq.

Passaggio 2: installare i bootloader SYSLINUX

4. Dopo aver modificato e salvato il file di configurazione principale DNSMASQ, vai avanti e installa il pacchetto bootloader PXE Syslinx immettendo il seguente comando.

yum install syslinux

5. I file dei bootloader PXE risiedono nel percorso di sistema assoluto /usr/share/syslinux, quindi puoi controllarlo elencando il contenuto di questo percorso. Questo passaggio è facoltativo, ma potrebbe essere necessario tenere presente questo percorso perché nel passaggio successivo copieremo tutto il contenuto nel percorso TFTP Server.

ls /usr/share/syslinux

Passaggio 3: installare il server TFTP e compilarlo con i bootloader SYSLINUX

6. Ora passiamo al passaggio successivo e installiamo TFTP-Server e, quindi, copiamo tutti i file bootloder forniti dal pacchetto Syslinux dalla posizione sopra elencata su / var/lib/tftpboot percorso immettendo i seguenti comandi.

yum install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

Passaggio 4: impostare il file di configurazione del server PXE

7. In genere il server PXE legge la sua configurazione da un gruppo di file specifici (file GUID – innanzitutto, MAC files – successivo, Default file – last) ospitato in una cartella chiamata pxelinux.cfg, che deve trovarsi nella directory specificata in tftp-root istruzione dal file di configurazione principale DNSMASQ.

Crea la directory richiesta pxelinux.cfg e popolala con un file predefinito immettendo i seguenti comandi.

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. Ora è il momento di modificare il file di configurazione del server PXE con le opzioni di installazione delle distribuzioni Linux valide. Tieni inoltre presente che tutti i percorsi utilizzati in questo file devono essere relativi alla directory /var/lib/tftpboot.

Di seguito è possibile vedere un file di configurazione di esempio che è possibile utilizzare, ma modificare le immagini di installazione (file kernel e initrd), i protocolli (FTP, HTTP, HTTPS, NFS) e gli IP per riflettere di conseguenza i repository e i percorsi di origine dell'installazione di rete.

nano /var/lib/tftpboot/pxelinux.cfg/default

Aggiungi il seguente intero estratto al file.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount

label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append  initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

Come puoi vedere le immagini di avvio di CentOS 7 (kernel e initrd) risiedono in una directory denominata centos7 relativa a /var/lib/tftpboot (su un percorso di sistema assoluto ciò significherebbe /var/lib/tftpboot/centos7) e i repository del programma di installazione possono essere raggiunti utilizzando il protocollo FTP sul percorso di rete 192.168.1.20/pub – in questo caso i repository sono ospitati localmente perché l'indirizzo IP è uguale all'indirizzo del server PXE).

Inoltre il menu etichetta 3 specifica che l'installazione del client deve essere eseguita da una posizione remota tramite VNC (qui sostituire la password VNC con una password complessa) nel caso in cui si installi su un client headless e il menu etichetta 2 specifica come
l'installazione origina un mirror Internet ufficiale di CentOS 7 (in questo caso richiede una connessione Internet disponibile sul client tramite DHCP e NAT).

Importante: come puoi vedere nella configurazione sopra, abbiamo utilizzato CentOS 7 a scopo dimostrativo, ma puoi anche definire immagini RHEL 7 e seguire tutte le istruzioni e le configurazioni sono basati solo su CentOS 7, quindi fai attenzione quando scegli la distribuzione.

Passaggio 5: aggiungere immagini di avvio CentOS 7 al server PXE

9. Per questo passaggio sono necessari il kernel CentOS e i file initrd. Per ottenere questi file è necessaria l'immagine CentOS 7 DVD ISO. Quindi, vai avanti e scarica CentOS DVD Image, inseriscilo nell'unità DVD e monta l'immagine sul percorso di sistema /mnt immettendo il comando seguente.

Il motivo per cui si utilizza il DVD e non un'immagine CD minima è il fatto che in seguito il contenuto del DVD verrà utilizzato per creare
repository di installazione locale per origini FTP.

mount -o loop /dev/cdrom  /mnt
ls /mnt

Se il tuo computer non ha un'unità DVD puoi anche scaricare CentOS 7 DVD ISO localmente utilizzando le utilità wget o curl da un mirror CentOS e montarlo.

wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
mount -o loop /path/to/centos-dvd.iso  /mnt

10. Dopo che il contenuto del DVD è stato reso disponibile, crea la directory centos7 e copia il kernel avviabile di CentOS 7 e le immagini initrd dalla posizione montata del DVD alla struttura delle cartelle centos7.

mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7

Il motivo per utilizzare questo approccio è che in seguito sarà possibile creare nuove directory separate nel percorso /var/lib/tftpboot e aggiungere altre distribuzioni Linux al menu PXE senza rovinare l'intera struttura delle directory.

Passaggio 6: creare l'origine di installazione del mirroring locale di CentOS 7

11. Sebbene sia possibile configurare mirror sorgente di installazione tramite una varietà di protocolli come HTTP, HTTPS o NFS, per questa guida ho scelto FTP protocollo perché è molto affidabile e facile da configurare con l'aiuto del server vsftpd.

Installa ulteriormente il demone vsftpd, copia tutto il contenuto montato sul DVD nel percorso predefinito del server vsftpd (/var/ftp/pub) – questa operazione può richiedere del tempo a seconda delle risorse del tuo sistema e aggiungi autorizzazioni leggibili per questo percorso immettendo i seguenti comandi.

yum install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

Passaggio 7: avviare e abilitare i demoni a livello di sistema

12. Ora che la configurazione del server PXE è finalmente terminata, avvia i server DNSMASQ e VSFTPD, verifica il loro stato e abilitalo a livello di sistema, per si avvia automaticamente dopo ogni riavvio del sistema, eseguendo i comandi seguenti.

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

Passaggio 8: aprire il firewall e testare l'origine dell'installazione FTP

13. Per ottenere un elenco di tutte le porte che devono essere aperte sul firewall affinché le macchine client possano raggiungere e avviarsi dal server PXE, esegui il comando netstat e aggiungi CentOS 7 Firewalld regola di conseguenza le porte di ascolto dnsmasq e vsftpd.

netstat -tulpn
firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. Per testare il percorso di rete dell'origine dell'installazione FTP, apri un browser localmente (lynx dovrebbe farlo) o su un computer diverso e digita l'indirizzo IP del tuo server PXE con
Protocollo FTP seguito dal percorso di rete /pub sull'URL archiviato e il risultato dovrebbe essere quello presentato nello screenshot seguente.

ftp://192.168.1.20/pub

15. Per eseguire il debug del server PXE per eventuali errori di configurazione o altre informazioni e diagnostica in modalità live, eseguire il comando seguente.

tailf /var/log/messages

16. Infine, l'ultimo passaggio obbligatorio che devi eseguire è smontare il DVD di CentOS 7 e rimuovere il supporto fisico.

umount /mnt

Passaggio 9: configurare i client per l'avvio dalla rete

17. Ora i tuoi clienti possono avviare e installare CentOS 7 sui loro computer configurando Network Boot come dispositivo di avvio primario dal BIOS del loro sistema o premendo un tasto specificato durante Operazioni BIOS POST come specificato nel manuale della scheda madre.

Per scegliere l'avvio dalla rete. Dopo che viene visualizzato il primo prompt PXE, premi il tasto F8 per accedere alla presentazione, quindi premi il tasto Invio per procedere al menu PXE.

18. Una volta raggiunto il menu PXE, scegli il tipo di installazione di CentOS 7, premi il tasto Invio e continua con la procedura di installazione nello stesso modo in cui potresti installarlo da un locale dispositivo di avvio multimediale.

Tieni presente che l'utilizzo della variante 2 da questo menu richiede una connessione Internet attiva sul client di destinazione. Inoltre, sotto
Negli screenshot è possibile vedere un esempio di installazione remota del client tramite VNC.

Questo è tutto per configurare un server PXE minimo su CentOS 7. Nel mio prossimo articolo di questa serie, discuterò di altri problemi riguardanti la configurazione del server PXE, ad esempio come impostare installazioni automatizzate di CentOS 7 utilizzando i file Kickstart e aggiungendo altre distribuzioni Linux al menu PXE – Ubuntu Server e Debian 7.