Il server PXE (Preboot eXecution Environment) consente l'installazione automatica o automatica del sistema operativo sulla rete. Il vantaggio principale di pxe è che non è necessaria alcuna unità di avvio per avviare il sistema operativo (sistema operativo) e non è necessario masterizzare alcun file ISO nel DVD o nel dispositivo USB.
Una volta configurato il server PXE, possiamo installare centinaia di sistemi contemporaneamente sulla rete. Poiché funziona sull'architettura client-server, per ottenere l'installazione del sistema operativo sui client, avviare i client tramite l'opzione PXE.
In questo articolo installerò il server PXE su CentOS 7.x e quindi proverò a installare il sistema operativo sul client utilizzando l'avvio pxe.
Di seguito sono riportati i dettagli della mia configurazione:
- IP server =172.168.1.11
- Nome host =pxe.example.com
- OS =CentOS 7.x
- SELinux =abilitato
- Firewall =abilitato
Passaggio:1 Installa i pacchetti richiesti per l'installazione di PXE
Per installare e configurare il server pxe su centos 7.x abbiamo bisogno dei seguenti pacchetti “dhcp, tftp-server, ftp server(vsftpd), xinted”. Apri il terminale esegui sotto il comando:
[[email protected] ~]# yum install dhcp tftp tftp-server syslinux vsftpd xinetd
Passaggio:2 Configura il server DHCP per PXE
Quando installiamo il pacchetto dhcp, viene creato un file di configurazione di esempio del server dhcp in "/usr/share/doc/dhcp*/dhcpd.conf.example “, sebbene il file di configurazione di dhcp sia in '/etc/dhcp/dhcpd.conf '.
Copia le seguenti righe nel file '/etc/dhcp/dhcpd.conf', sostituisci la sottorete IP e altri dettagli secondo il tuo ambiente.
[[email protected] ~]# vi /etc/dhcp/dhcpd.conf # DHCP Server Configuration file. ddns-update-style interim; ignore client-updates; authoritative; allow booting; allow bootp; allow unknown-clients; # internal subnet for my DHCP Server subnet 172.168.1.0 netmask 255.255.255.0 { range 172.168.1.21 172.168.1.151; option domain-name-servers 172.168.1.11; option domain-name "pxe.example.com"; option routers 172.168.1.11; option broadcast-address 172.168.1.255; default-lease-time 600; max-lease-time 7200; # IP of PXE Server next-server 172.168.1.11; filename "pxelinux.0"; }
Passaggio:3 Modifica e configurazione del server tftp (/etc/xinetd.d/tftp)
TFTP (Trivial File Transfer Protocol) viene utilizzato per trasferire file dal server di dati ai suoi client senza alcun tipo di autenticazione. In caso di configurazione del server PXE, tftp viene utilizzato per il caricamento bootstrap. Per configurare il server tftp, modifica il suo file di configurazione " /etc/xinetd.d/tftp ', cambia il parametro 'disable =yes' in 'disable =no' e lascia gli altri parametri così come sono.
[[email protected] ~]# vi /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
Tutti i file relativi all'avvio di rete devono essere collocati nella directory principale di tftp “/var/lib/tftpboot ”
Esegui i seguenti comandi per copiare i file di avvio di rete richiesti in '/var/lib/tftpboot/'
[[email protected] ~]# cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot [[email protected] ~]# [[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [[email protected] ~]# mkdir /var/lib/tftpboot/networkboot [email protected] ~]#
Passaggio:4 Monta il file ISO di CentOS 7.x e copia il suo contenuto sul server ftp locale
Nel mio caso ho già scaricato il file iso CentOS 7.x sul mio server PXE. Esegui i comandi sottostanti per montare il file iso e quindi copia il suo contenuto nella directory del server ftp '/var/ftp/pub '
[[email protected] ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only [[email protected] ~]# cd /mnt/ [[email protected] mnt]# cp -av * /var/ftp/pub/
Copia il file del kernel (vmlimz) e il file initrd dal file iso montato in '/var/lib/tftpboot/networkboot/ '
[[email protected] ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/ [[email protected] ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/ [[email protected] ~]#
Ora puoi smontare il file iso usando il comando "umount"
[[email protected] ~]# umount /mnt/ [[email protected] ~]#
Passo:5 Crea file di menu kickStart e PXE.
Prima di creare il file kickstart, creiamo prima la password di root in una stringa crittografata perché utilizzeremo quella stringa di password crittografata nel file kickstart.
[[email protected] ~]# openssl passwd -1 [email protected]# $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 [[email protected] ~]#
Il file kickstart predefinito del sistema è posizionato in /root con il nome 'anaconda-ks.cfg '. Creeremo un nuovo kickstart nella cartella /var/ftp/pub con il nome "centos7.cfg '
Copia il seguente contenuto nel nuovo file kickstart. Si prega di modificare il file kickstart secondo le proprie esigenze.
[[email protected] ~]# vi /var/ftp/pub/centos7.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use FTP installation media url --url="ftp://172.168.1.11/pub/" # Root password rootpw --iscrypted $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 # System authorization information auth useshadow passalgo=sha512 # Use graphical install graphical firstboot disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux disabled # Installation logging level logging level=info # System timezone timezone Europe/Amsterdam # System bootloader configuration bootloader location=mbr clearpart --all --initlabel part swap --asprimary --fstype="swap" --size=1024 part /boot --fstype xfs --size=300 part pv.01 --size=1 --grow volgroup root_vg01 pv.01 logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow %packages @^minimal @core %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end
Crea un file di menu PXE (/var/lib/tftpboot/pxelinux.cfg/default ), copia i seguenti contenuti nel file del menu pxe.
[[email protected] ~]# vi /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 0 timeout 30 MENU TITLE LinuxTechi.com PXE Menu LABEL centos7_x64 MENU LABEL CentOS 7_X64 KERNEL /networkboot/vmlinuz APPEND initrd=/networkboot/initrd.img inst.repo=ftp://172.168.1.11/pub ks=ftp://172.168.1.11/pub/centos7.cfg
Passaggio:6 Avvia e abilita il servizio xinetd, dhcp e vsftpd.
Usa i comandi sottostanti per avviare e abilitare xinetd, dhcp e vsftpd.
[[email protected] ~]# systemctl start xinetd [[email protected] ~]# systemctl enable xinetd [[email protected] ~]# systemctl start dhcpd.service [[email protected] ~]# systemctl enable dhcpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service. [[email protected] ~]# [[email protected] ~]# systemctl start vsftpd [[email protected] ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [[email protected] ~]#
Nel caso in cui SELinux sia abilitato, impostare la seguente regola selinux per il server ftp.
[[email protected] ~]# setsebool -P allow_ftpd_full_access 1 [[email protected] ~]#
Apri le porte nel firewall del sistema operativo utilizzando i seguenti comandi firewall-cmd
[[email protected] ~]# firewall-cmd --add-service=ftp --permanent success [[email protected] ~]# firewall-cmd --add-service=dhcp --permanent success [[email protected] ~]# firewall-cmd --add-port=69/tcp --permanent success [[email protected] ~]# firewall-cmd --add-port=69/udp --permanent success [[email protected] ~]# firewall-cmd --add-port=4011/udp --permanent success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Fino a questo punto, l'installazione e la configurazione del server PXE sono state completate.
Passaggio:7 Avvia i client con l'opzione di avvio pxe.
Come si può vedere sopra, l'installazione è stata avviata con qualsiasi interazione umana. Spero che ti piaccia l'installazione e la configurazione del server PXE. Si prega di condividere feedback e commenti.