Server PXE – 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à per masterizzare un CD/DVD o utilizzare un supporto fisico, oppure, può facilitare il lavoro di installazione di distribuzioni Linux sulla propria infrastruttura di rete su più macchine contemporaneamente volta.
Questo articolo spiegherà come installare e configurare un Server PXE sopra RHEL/CentOS 7 x64-bit con repository di installazione locale con mirroring, fonti fornite dall'immagine ISO DVD di CentOS 7, con l'aiuto di DNSMASQ Server.
Che fornisce DNS e DHCP Servizi, Syslinux pacchetto che fornisce bootloader per l'avvio di rete,
Server TFTP, che rende disponibili le immagini avviabili per il download tramite rete utilizzando Protocollo di trasferimento file banale (TFTP) e VSFTPD Server che ospiterà l'immagine DVD con mirroring montata in locale, che fungerà da repository di installazione mirror ufficiale di RHEL/CentOS 7 da cui il programma di installazione estrarrà i pacchetti richiesti.1. Non c'è bisogno di ricordarti che è assolutamente esigente che una delle tue schede di rete si interfaccia, nel caso in cui il tuo server ponga più NIC, deve essere configurato con un indirizzo IP statico dello stesso intervallo IP che appartiene al segmento di rete che fornirà PXE Servizi.
Quindi, dopo aver configurato il tuo indirizzo IP statico, aggiornato il tuo sistema ed eseguito altre impostazioni iniziali, usa il seguente comando per installare DNSMASQ demone.
# yum install dnsmasq.
2. File di configurazione predefinito principale DNSMASQ situato in /etc directory è autoesplicativa ma intende essere piuttosto difficile da modificare, a causa delle sue spiegazioni altamente commentate.
Prima assicurati di eseguire il backup di questo file nel caso in cui dovessi 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 su dnsmasq.conf file e assicurati di modificare le istruzioni spiegate di seguito in modo che corrispondano alle impostazioni di rete.
interfaccia=eno16777736,lo. #bind-interfaces. dominio=centos7.lan. # Leasing di range DHCP. 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. # Porta. dhcp-opzione=3,192.168.1.1. # DNS. dhcp-opzione=6,92.168.1.1, 8.8.8.8. server=8.8.4.4. # Indirizzo di trasmissione. dhcp-opzione=28,10.0.0.255. # Server NTP. dhcp-option=42,0.0.0.0 pxe-prompt="Premi F8 per il menu.", 60. pxe-service=x86PC, "Installa CentOS 7 dal server di rete 192.168.1.20", pxelinux. abilita-tftp. tftp-root=/var/lib/tftpboot.
Le dichiarazioni che devi modificare sono le seguenti:
Per altre opzioni avanzate relative al file di configurazione non esitare a leggere dnsmasq manuale.
4. Dopo aver modificato e salvato DNSMASQ file di configurazione principale, vai avanti e installa Syslinx Pacchetto bootloader PXE emettendo il seguente comando.
# yum installa syslinux.
5. I file dei bootloader PXE risiedono in /usr/share/syslinux percorso di sistema assoluto, quindi puoi verificarlo elencando il contenuto di questo percorso. Questo passaggio è facoltativo, ma potrebbe essere necessario essere a conoscenza di questo percorso perché nel passaggio successivo copieremo tutto il suo contenuto su Server TFTP il percorso.
# ls /usr/share/syslinux.
6. Ora passiamo al passaggio successivo e installiamo Server TFTP e, quindi, copia tutti i file bootloder forniti dal pacchetto Syslinux dalla posizione sopra elencata a /var/lib/tftpboot percorso emettendo i seguenti comandi.
# yum install tftp-server. # cp -r /usr/share/syslinux/* /var/lib/tftpboot.
7. Tipicamente il Server PXE legge la sua configurazione da un gruppo di file specifici (GUID file – prima, MAC file – successivo, Predefinito 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 popolalo con a predefinito file emettendo i seguenti comandi.
# mkdir /var/lib/tftpboot/pxelinux.cfg. # toccare /var/lib/tftpboot/pxelinux.cfg/default.
8. Ora è il momento di modificare Server PXE file di configurazione con opzioni di installazione di distribuzioni Linux valide. Si noti inoltre che tutti i percorsi utilizzati in questo file devono essere relativi a /var/lib/tftpboot directory.
Sotto puoi vedere un file di configurazione di esempio che puoi usare, ma modifica le immagini di installazione (kernel e initrd file), protocolli (FTP, HTTP, HTTPS, NFS) e IP per riflettere i repository e i percorsi di origine dell'installazione di rete di conseguenza.
# nano /var/lib/tftpboot/pxelinux.cfg/default.
Aggiungi il seguente intero estratto al file.
menu predefinito.c32. prompt 0. scadenza 300. Titolo del menu locale ONTIMEOUT ########## Menu di avvio PXE ########## label 1. etichetta del menu ^1) Installa CentOS 7 x64 con Local Repo. kernel centos7/vmlinuz. append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount label 2. etichetta del menu ^2) Installa CentOS 7 x64 con http://mirror.centos.org Repo. kernel centos7/vmlinuz. append initrd=centos7/initrd.img metodo= http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp label 3. etichetta del menu ^3) Installa CentOS 7 x64 con Local Repo utilizzando 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. etichetta del menu ^4) Avviare dall'unità locale.
Come puoi vedere, le immagini di avvio di CentOS 7 (kernel e initrd) risiedono in una directory denominata centos7 relativo a /var/lib/tftpboot (su un percorso di sistema assoluto ciò significherebbe /var/lib/tftpboot/centos7) e i repository di installazione possono essere raggiunti utilizzando FTP protocollo attivato 192.168.1.20/pub percorso di rete – in questo caso i repository sono ospitati localmente perché l'indirizzo IP è lo stesso dell'indirizzo del server PXE).
Anche 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 genera un mirror Internet ufficiale di CentOS 7 (questo caso richiede una connessione Internet disponibile sul client tramite DHCP e NAT).
Importante: Come vedi nella configurazione sopra, abbiamo usato CentOS 7 a scopo dimostrativo, ma puoi anche definire RHEL 7 le immagini e le seguenti istruzioni e configurazioni sono basate solo su CentOS 7, quindi fai attenzione durante la scelta distribuzione.
9. Per questo passaggio sono necessari il kernel CentOS e i file initrd. Per ottenere quei file è necessario il CentOS 7 DVD ISO Immagine. Quindi, vai avanti e scarica CentOS DVD Image, inseriscilo nell'unità DVD e monta l'immagine su /mnt percorso di sistema emettendo il comando seguente.
Il motivo per utilizzare il DVD e non un'immagine CD minima è il fatto che in seguito questo contenuto del DVD sarebbe stato utilizzato per creare il
repository di installazione locale per FTP fonti.
# mount -o loop /dev/cdrom /mnt. # ls /mnt.
Se la tua macchina non ha un'unità DVD puoi anche scaricare CentOS 7 DVD ISO localmente usando wget o arricciare utilità da a Specchio 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, creare il centos7 directory e copia il kernel avviabile di CentOS 7 e le immagini initrd dalla posizione montata sul DVD nella 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, puoi creare nuove directory separate in /var/lib/tftpboot path e aggiungi altre distribuzioni Linux al menu PXE senza rovinare l'intera struttura della directory.
11. Sebbene tu possa configurare Specchi 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 di vsftpd server.
Installa ulteriormente il demone vsftpd, copia tutto il contenuto montato su DVD su vsftpd percorso del server predefinito (/var/ftp/pub) – questo può richiedere del tempo a seconda delle risorse di sistema e aggiungere autorizzazioni leggibili a questo percorso emettendo i seguenti comandi.
# yum install vsftpd. # cp -r /mnt/* /var/ftp/pub/ # chmod -R 755 /var/ftp/pub.
12. Ora che la configurazione del server PXE è finalmente terminata, inizia DNSMASQ e VSFTPD server, verificarne lo stato e abilitarlo a livello di sistema, per l'avvio automatico dopo ogni riavvio del sistema, eseguendo i comandi seguenti.
# systemctl avvia dnsmasq. # stato systemctl dnsmasq. # systemctl avvia vsftpd. # stato systemctl vsftpd. # systemctl abilita dnsmasq. # systemctl abilita vsftpd.
13. Per ottenere un elenco di tutte le porte che devono essere aperte sul firewall affinché le macchine client possano raggiungere e avviare dal server PXE, eseguire netstat comando e aggiungi le regole CentOS 7 Firewalld di conseguenza alle porte di ascolto dnsmasq e vsftpd.
# netstat -tulpn. # firewall-cmd --add-service=ftp --permanent ## Porta 21. # firewall-cmd --add-service=dns --permanent ## Porta 53. # firewall-cmd --add-service=dhcp --permanent ## Porta 67. # firewall-cmd --add-port=69/udp --permanent ## Porta per TFTP. # firewall-cmd --add-port=4011/udp --permanent ## Porta per ProxyDHCP. # firewall-cmd --reload ## Applica regole.
14. Per testare il percorso di rete dell'origine dell'installazione FTP, aprire un browser localmente (lince dovrebbe farlo) o su un computer diverso e digita l'indirizzo IP del tuo server PXE con
Protocollo FTP seguito da /pub percorso di rete sull'URL archiviato e il risultato dovrebbe essere come mostrato nello screenshot qui sotto.
ftp://192.168.1.20/pub.
15. Per eseguire il debug del server PXE per eventuali configurazioni errate o altre informazioni e diagnostica in modalità live, eseguire il seguente comando.
# tailf /var/log/messages.
16. Infine, l'ultimo passaggio richiesto che devi fare è smontare CentOS 7 DVD e rimuovere il supporto fisico.
# smonta /mnt.
17. Ora i tuoi clienti possono avviare e installare CentOS 7 sui loro computer configurando Network Boot come dispositivo di avvio principale dal loro BIOS di sistema o premendo un tasto specificato durante BIOS POST operazioni come specificato nel manuale della scheda madre.
Per scegliere l'avvio di rete. Dopo che è apparso il primo prompt PXE, premere F8 tasto per accedere alla presentazione e quindi premere accedere tasto per avanzare al menu PXE.
18. Una volta raggiunto il menu PXE, scegli il tipo di installazione di CentOS 7, premi accedere key e continua con la procedura di installazione nello stesso modo in cui potresti installarla da un dispositivo di avvio multimediale locale.
Si prega di notare che l'utilizzo della variante 2 da questo menu richiede una connessione Internet attiva sul client di destinazione. Inoltre, in basso
screenshot puoi vedere un esempio di installazione remota di un client tramite VNC.
Questo è tutto per impostare un minimo Server PXE sopra CentOS 7. Nel mio prossimo articolo di questa serie, discuterò altri problemi riguardanti questa configurazione del server PXE come come impostare installazioni automatizzate di CentOS 7 usando Kickstart file e aggiungendo altre distribuzioni Linux al menu PXE – Ubuntu Server e Debian 7.