Installare PXE (Network Boot) Server su CentOS 7



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


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!!

Loading