Un server PXE permette ai computer client di avviare e installare un sistema in rete senza avere un supporto fisico. A differenza dei tradizionali metodi di installazione, si può installare qualsiasi sistema nella rete senza dover usare l’ unità CD / DVD o USB. L’ ambiente PXE ha bisogno di un server DHCP che distribuisce gli indirizzi IP per i sistemi client e un server TFTP che scarica i file di installazione per i client PXE. Non hai bisogno di CD / DVD o drive USB avviabile per installare i sistemi client. Basta, copiare le immagini ISO sul server PXE e iniziare a installare i client via rete utilizzando il server PXE.
Richiesto
- CentOS 7 procedura di installazione minimal
- Configurazione IP statico
- Installazione di Samba
- Configurare NTP (Network Time Protocol) Server
Scenario
- Operating System : CentOS 7 Minimal server.
- IP Address : 192.168.1.200/24.
- SELinux disabilitato sul server PXE.
In questo tutorial vediamo come configurare il servizio PXE su CentOS 7 Server per installare Linux Mint Betsy o installare Windows 7 sul nostro computer sfruttando la rete locale.
1. Installare i pacchetti necessari :
yum -y install dhcp httpd xinetd tftp tftp-server syslinux wget vsftpd
2. Configurare il servizio DHCP :
vi /etc/dhcp/dhcpd.conf
# # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # # option definitions common to all supported networks... ddns-update-style interim; ignore client-updates; authoritative; allow booting; allow bootp; allow unknown-clients; # A slightly different configuration for an internal subnet. subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.50 192.168.1.201; option domain-name-servers 192.168.1.200; option domain-name "server.smbisoshare.local"; option routers 192.168.1.1; option broadcast-address 10.5.5.31; #not important default-lease-time 600; max-lease-time 7200; # PXE SERVER IP next-server 192.168.1.200; # DHCP server ip filename "pxelinux.0"; }
3. Configurare il servizio TFTP.
Da notare, che la directory TFTP standard è in /var/lib/tftpboot
vi /etc/xinetd.d/tftp
Abilitare il server TFTP. Per fare questo, modificare da “disable = yes” a “no”.
# default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
4. Configurare il servizio TFTP network boot files
mkdir -p /tftpboot chmod 777 /tftpboot
cp -v /usr/share/syslinux/pxelinux.0 /tftpboot cp -v /usr/share/syslinux/menu.c32 /tftpboot cp -v /usr/share/syslinux/memdisk /tftpboot cp -v /usr/share/syslinux/mboot.c32 /tftpboot cp -v /usr/share/syslinux/chain.c32 /tftpboot
mkdir /tftpboot/pxelinux.cfg mkdir -p /tftpboot/netboot/
5. Montare l’ISO di Centos nella cartella /var/ftp/pub.
mount -o loop /root/Centos7_xx.iso /var/ftp/pub
6. Copiare il file initrd.img e vmlinuz da FTP a /tftpboot/netboot/.
cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/netboot/
cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/netboot/
7. Codifica della password di root utilizzata per i client.
Esempio: 123456
openssl passwd -1 "123456" $1$hbJFwkoT$8d1IDHD4qqV5txuTNjD1X.
8. Creare un nuovo file kickstart (si può modificare in base alle vostre esigenze).
vi /var/ftp/pub/ks.cfg
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use NFS installation media url --url="ftp://192.168.1.200/pub/" # Root password [i used here solita] rootpw --iscrypted $1$hbJFwkoT$8d1IDHD4qqV5txuTNjD1X. # System authorization information auth useshadow passalgo=sha512 # Use graphical install graphical firstboot disable # System keyboard keyboard it # System language lang en_US # SELinux configuration selinux disabled # Installation logging level logging level=info # System timezone timezone Europe/Rome # System bootloader configuration bootloader location=mbr clearpart --all --initlabel part swap --asprimary --fstype="swap" --size=1024 part /boot --fstype xfs --size=200 part pv.01 --size=1 --grow volgroup rootvg01 pv.01 logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow %packages @core wget net-tools %end %post %end
9. Creare il file per il menu di PXE
vi /tftpboot/pxelinux.cfg/default
default menu.c32 prompt 0 timeout 30 MENU TITLE gidalo.it PXE Menu label 1 menu label ^1) CentOS 7 X64 KERNEL /netboot/vmlinuz APPEND initrd=/netboot/initrd.img inst.repo=ftp://192.168.1.200/pub ks=ftp://192.168.1.200/pub/ks.cfg
10. Attivare i servizi a ogni riavvio del server
chkconfig dhcpd on chkconfig xinetd on chkconfig vsftpd on
11. Riavviare i servizi
Service vsftpd restart service dhcpd restart service xinetd restart
12. Applichiamo le regole al firewall con:
firewall-cmd --add-service=ftp --permanent success firewall-cmd --add-service=dhcp --permanent success firewall-cmd --add-port=69/tcp --permanent success firewall-cmd --add-port=69/udp --permanent success firewall-cmd --add-port=4011/udp --permanent success firewall-cmd --reload success
NB. In caso SELinux è abilitato, imposta la seguente regola per il server ftp:
setsebool -P allow_ftpd_full_access 1
13. Collegare un computer alla rete e avviarlo tramite boot PXE.
Continua……..
prossimo articolo PXE: installare Windows 7 edizione a 32/64!!