Ricerca nel sito web

Installa più distribuzioni Linux utilizzando l'avvio di rete PXE su RHEL/CentOS 8


Server PXEPreboot eXecution Environment è un'architettura client-server standardizzata che istruisce un sistema client ad avviare, eseguire o installare più sistemi operativi Linux utilizzando un'interfaccia di rete compatibile con PXE sulla tua infrastruttura di rete.

Requisiti

    • Installazione del server minimo CentOS 8
    • Installazione del server minimo RHEL 8
    • Configura l'indirizzo IP statico in RHEL/CentOS 8

In questo articolo imparerai come installare e configurare un server di avvio di rete PXE su CentOS/RHEL 8 con repository di installazione locale con mirroring forniti da CentOS 8 e RHEL 8 immagini ISO.

Per questa configurazione di avvio di rete PXE, installeremo i seguenti pacchetti sul sistema:

  • DNSMASQ – un forwarder DNS leggero che fornisce servizi DNS e DHCP con supporto per PXE e un server TFTP.
  • Syslinux: un boot loader Linux che fornisce boot loader per l'avvio dalla rete.
  • TFTP Server: un semplice protocollo di trasferimento file che crea immagini avviabili disponibili per il download tramite una rete.
  • VSFTPD Server – un protocollo di trasferimento file sicuro che ospiterà l'immagine DVD mirrorata montata localmente – che fungerà da repository ufficiale di installazione mirror RHEL/CentOS 8 da cui il programma di installazione estrarrà i pacchetti richiesti.

Passaggio 1: installa e configura il server DNSMASQ

1. È importante ricordarti che una delle tue interfacce di rete deve essere configurata con un indirizzo IP statico dello stesso intervallo IP di rete che fornisce i servizi PXE.

Dopo aver configurato un indirizzo IP statico, aggiorna i pacchetti software di sistema e installa il demone DNSMASQ.

dnf install dnsmasq

2. Una volta installato DNSMASQ, troverai il file di configurazione predefinito nella directory /etc/dnsmasq.conf, che è autoesplicativo ma più difficile da configurare, a causa delle sue spiegazioni altamente commentate.

Innanzitutto, assicurati di eseguire un backup di questo file nel caso in cui potresti averne bisogno per rivederlo in seguito, quindi crea un nuovo file di configurazione utilizzando il tuo editor preferito come mostrato.

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

3. Ora copia e incolla le seguenti configurazioni sul file /etc/dnsmasq.conf e modifica i parametri di configurazione in base alle impostazioni di rete.

interface=enp0s3,lo
#bind-interfaces
domain=tecmint
DHCP range-leases
dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
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 8 from network server 192.168.1.2", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Di seguito sono riportate le istruzioni di configurazione che è necessario modificare:

  • interfaccia – Le interfacce di rete del server dovrebbero ascoltare e fornire servizi.
  • bind-interfaces: rimuove il commento per associare l'interfaccia a una determinata scheda di rete.
  • dominio: sostituiscilo con il tuo nome di dominio.
  • dhcp-range: modificalo con l'intervallo IP della tua rete.
  • dhcp-boot: sostituiscilo con l'indirizzo IP della tua interfaccia di rete.
  • dhcp-option=3,192.168.1.1: sostituiscilo con il gateway di rete.
  • dhcp-option=6,92.168.1.1 – Sostituiscilo con l'IP del tuo server DNS.
  • server=8.8.4.4: aggiungi gli indirizzi IP dei tuoi forwarder DNS.
  • dhcp-option=28,10.0.0.255: sostituiscilo facoltativamente con l'indirizzo IP trasmesso in rete.
  • dhcp-option=42,0.0.0.0 -Aggiungi i tuoi time server di rete (0.0.0.0 L'indirizzo è per autoreferenzialità).
  • pxe-prompt: mantienilo come predefinito.
  • pxe=service: utilizza x86PC per architetture a 32/64 bit e aggiungi una richiesta di descrizione del menu tra virgolette.
  • enable-tftp – Abilita il server TFTP integrato.
  • tftp-root: aggiunge il percorso dei file di avvio dalla rete /var/lib/tftpboot.

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

Passaggio 2: installare i bootloader SYSLINUX

4. Dopo aver completato la configurazione principale di DNSMASQ, installa il pacchetto bootloader Syslinx PXE utilizzando il seguente comando.

dnf install syslinux

5. I bootloader Syslinx PXE sono installati in /usr/share/syslinux, puoi confermarlo eseguendo il comando ls come mostrato.

ls /usr/share/syslinux

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

6. Ora installa TFTP-Server e copia tutti i bootloader Syslinux da /usr/share/syslinux/ a /var/lib /tftpboot come mostrato.

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

Passaggio 4: impostare il file di configurazione del server PXE

7. Per impostazione predefinita, il server PXE legge la sua configurazione da un insieme di file specifici trovati in pxelinux.cfg, che deve essere trovato nel file directory descritta nell'impostazione tftp-root dal file di configurazione DNSMASQ sopra.

Innanzitutto, crea una directory pxelinux.cfg e crea un file default immettendo i seguenti comandi.

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

8. Ora apri e modifica il file di configurazione default PXE con le opzioni di installazione della distribuzione Linux corrette. Inoltre, assicurati di ricordare che i percorsi impostati in questo file devono essere relativi alla directory /var/lib/tftpboot.

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

Di seguito è riportato un esempio di file di configurazione che puoi utilizzare, ma assicurati di modificare le immagini, i protocolli e gli IP di installazione per riflettere di conseguenza i repository e le posizioni di origine dell'installazione di rete.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

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

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

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

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

label 4
menu label ^4) Boot from local drive

Nella configurazione sopra, puoi notare che le immagini di avvio di CentOS 8 (kernel e initrd) risiedono in un centos7 directory relativa a /var/lib/tftpboot (ovvero /var/lib/tftpboot/centos7) e i repository di installazione sono accessibili utilizzando il protocollo FTP su 192.168.1.2/pub (indirizzo IP del server PXE).

Inoltre, l'etichetta del menu 2 descrive i repository mirror delle fonti di installazione ufficiali di CentOS 8 (la connessione Internet è obbligatoria sul sistema client) e l'etichetta del menu 3 descrive che l'installazione del client deve essere eseguita tramite un VNC remoto (qui sostituisci la password VNC con una password complessa).

Importante: come puoi vedere nella configurazione sopra, abbiamo utilizzato l'immagine CentOS 8 a scopo dimostrativo, ma puoi anche utilizzare Immagini di RHEL 8.

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

9. Per aggiungere immagini CentOS 8 al server PXE, è necessario scaricare l'immagine ISO del DVD CentOS 8 localmente utilizzando il comando wget e montarla.

wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt

10. Dopo aver scaricato CentOS 8, devi creare una directory centos8 e copiare il kernel avviabile e le immagini initrd.

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

La ragione per cui si adotta questo approccio è che in seguito si potranno avere directory separate per ogni nuova distribuzione Linux in /var/lib/tftpboot senza rovinare l'intera struttura delle directory.

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

11. Sono disponibili numerosi protocolli (HTTP, HTTPS o NFS) per la configurazione Mirroring della sorgente di installazione locale di CentOS 8, ma ho scelto il protocollo FTP perché è facile da configurare utilizzando il server vsftpd.

Installiamo il server Vsftpd e copiamo tutto il contenuto del DVD CentOS 8 nella directory FTP /var/ftp/pub come mostrato.

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

12. Ora che tutta la configurazione del server PXE è stata completata, puoi avviare, abilitare e verificare lo stato dei server DNSMASQ e VSFTPD.

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

13. Successivamente, è necessario aprire le porte sul firewall affinché i sistemi client possano raggiungere e avviarsi dal server PXE.

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 verificare il percorso di rete dell'origine dell'installazione FTP, aprire il browser e digitare l'indirizzo IP del server PXE con il protocollo FTP seguito dal percorso di rete /pub.

ftp://192.168.1.2/pub

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

15. Ora configura i sistemi client per l'avvio e installa CentOS 8 sui loro sistemi configurando Network Boot come dispositivo di avvio principale dal menu BIOS.

Dopo l'avvio del sistema, riceverai un prompt PXE, in cui dovrai premere il tasto F8 per accedere alla presentazione e quindi premere il tasto Invio per procedere al menu PXE.

Questo è tutto per quanto riguarda la configurazione di un server PXE minimo su CentOS/RHEL 8.