
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!!
![]()