MODOP – Installer un serveur PXE – Centos7

Le but est de déployer/centraliser des installations « Netboot » sur des machines Centos7.
Les machines clientes iront chercher sur le PXE l’installation minimal de l’iso Centos7.

Les spécifications de la machine

Host : pxe.house.cpb

  • IP : 172.16.186.33 (Static)
  • vCore :2
  • RAM : 2Go
  • Disque :30Go

2 Machines

  • pxe.house.cpb : 172.16.186.33
  • client-pxe.house.cpb : DHCP via PXE

1°) Désactivation du SElinux

[root@pxe ~]# vi /etc/selinux/config
SELINUX=disabled

Redémarrer la machine.

[root@pxe ~]# reboot

2°) Désactiver l’IPV6

[root@pxe ~]# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.default.autoconf = 0
[root@pxe ~]# sysctl -p

3°) Installation de paquets utiles

[root@pxe ~]# yum update && yum upgrade
[root@pxe ~]# yum -y install qemu-guest-agent
[root@pxe ~]# yum -y install htop nmap net-tools
[root@pxe ~]# yum -y install epel-release

4°) Installation et configuration DHCP Server

Le serveur DHCP aura la tâche d’attribuer des IP dynamique à chaque client venant se connecter au PXE.

[root@pxe ~]# yum -y install dhcp
[root@pxe ~]# vi /etc/dhcp/dhcpd.conf

ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;

# DHCP sur notre Subnet 172.16.186.0/24
subnet 172.16.186.0 netmask 255.255.255.0 {
          # Plage d’adresse sur le DHCP ici 10 Machines Max
          range 172.16.186.50 172.16.186.60;
          option domain-name-servers 192.168.1.1, 172.16.185.1, 172.16.185.2;
          option domain-name "pxe.house.cpb";
          # Passerelle/Gateway
          option routers 172.16.186.201;
           option broadcast-address 172.16.186.255;
          default-lease-time 600;
          max-lease-time 7200;

          # IP Static de Notre Server PXE
          next-server 172.16.186.33;
          filename "pxelinux.0";
}

Test de la conf DHCP

[root@pxe ~]# dhcpd -t -cf /etc/dhcp/dhcpd.conf

5°) Installation et configuration tftp et Xinetd

[root@pxe ~]# yum -y install tftp tftp-server syslinux vsftpd xinetd
[root@pxe ~]# 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
}

Copie des Fichier Syslinux sur tfp serveur : /tftpboot

[root@pxe ~]# cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
‘/usr/share/syslinux/pxelinux.0’ -> ‘/var/lib/tftpboot/pxelinux.0’
[root@pxe ~]# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot
‘/usr/share/syslinux/menu.c32’ -> ‘/var/lib/tftpboot/menu.c32’
[root@pxe ~]# cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot
‘/usr/share/syslinux/memdisk’ -> ‘/var/lib/tftpboot/memdisk’
[root@pxe ~]# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
‘/usr/share/syslinux/mboot.c32’ -> ‘/var/lib/tftpboot/mboot.c32’
[root@pxe ~]# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot
‘/usr/share/syslinux/chain.c32’ -> ‘/var/lib/tftpboot/chain.c32’

Copie des Fichiers ISO sur tfp serveur : /pub
Assurer vous que le CD ISO centos est bien monté sur la machine virtuelle

[root@pxe ~]# mount -o loop /dev/sr0 /mnt
[root@pxe ~]# ls -al /mnt

[root@pxe ~]# cd /mnt/
[root@pxe mnt]# cp -av * /var/ftp/pub/
[root@pxe mnt]# ls -al /var/ftp/pub/

Copie des fichiers Kernel sur tfp serveur 

[root@pxe ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe ~]# mkdir /var/lib/tftpboot/networkboot
[root@pxe mnt]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/
[root@pxe mnt]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/

Umount le CDROM sur /mnt

[root@pxe mnt]# cd /
[root@pxe /]# umount /mnt/

6°) Création d’un KIX de démarrage

Générer un password Crypté root pour le KIX

[root@pxe ~]# openssl passwd -1 bettyboop
$1$AQexes9s$.SImNOXPq.D7SaQVS5Oz81

Création fichier KixStart sur tftp Server : centos7.cfg

[root@pxe ~]# 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.16.186.33/pub/"

# Root password
rootpw --iscrypted $1$AQexes9s$.SImNOXPq.D7SaQVS5Oz81

# System authorization information
auth useshadow passalgo=sha512
# Use graphical install
graphical
firstboot disable

# System keyboard
keyboard fr

# System language
lang fr_FR

# SELinux configuration
selinux disabled
# Installation logging level
logging level=info

# System timezone
timezone Europe/Paris

# 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

7°) Création du Start Menu

Création fichier Menu sur tftp Server : default

[root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
prompt 0
timeout 30
MENU TITLE Infra Centos7 test Christian PXE Menu
LABEL centos7_x64
MENU LABEL CentOS 7_X64
KERNEL /networkboot/vmlinuz
APPEND initrd=/networkboot/initrd.img inst.repo=ftp://172.16.186.33/pub ks=ftp://172.16.186.33/pub/centos7.cfg

8°) Démarrage des services

Service Xinetd

[root@pxe ~]# systemctl start xinetd && systemctl enable xinetd
[root@pxe ~]# systemctl status xinetd

Service DHCP

[root@pxe ~]# systemctl start dhcpd.service && systemctl enable dhcpd.service
[root@pxe ~]# systemctl status dhcpd.service

Service vsftp

[root@pxe ~]# systemctl start vsftpd && systemctl enable vsftpd
[root@pxe ~]# systemctl status vsftpd

9°) Ouverture des ports sur le Firewall

[root@pxe ~]# firewall-cmd --add-service=ftp --permanent --zone=public
[root@pxe ~]# firewall-cmd --add-service=dhcp --permanent --zone=public
[root@pxe ~]# firewall-cmd --add-port=69/tcp --permanent --zone=public
[root@pxe ~]# firewall-cmd --add-port=69/udp --permanent --zone=public
[root@pxe ~]# firewall-cmd --add-port=4011/udp --permanent --zone=public
[root@pxe ~]# firewall-cmd --reload

10°) Installation Client Centos7 via PXE

Sur Proxmox

« next »

« next »

« next »

« next »

« next »

« next »

« next »

« finish »

Démarrer la machine Cliente et rentrer dans le BIOS Machine.
Le client se connecte sur le Serveur PXE

Côté Client

Menu de démarrage

Menu d’installation Centos
Laisser faire l’installation « minimal » de la machine Cliente

Views: 19

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *