Le serveur PXE (Preboot eXecution Environment) permet l'installation automatique ou automatisée du système d'exploitation sur le réseau. dans un DVD ou un périphérique USB.
Une fois le serveur PXE configuré, nous pouvons installer des centaines de systèmes en même temps sur le réseau. Comme il fonctionne sur une architecture client-serveur, pour obtenir l'installation du système d'exploitation sur les clients, démarrez les clients via l'option PXE.
Dans cet article, je vais configurer le serveur PXE sur CentOS 7.x, puis j'essaierai d'installer le système d'exploitation sur le client à l'aide du démarrage pxe.
Voici les détails de ma configuration :
- IP du serveur =172.168.1.11
- Nom d'hôte =pxe.example.com
- SE =CentOS 7.x
- SELinux =activé
- Pare-feu =activé
Étape 1 Installez les packages requis pour la configuration PXE
Pour installer et configurer le serveur pxe sur centos 7.x, nous avons besoin des packages suivants "dhcp, tftp-server, ftp server(vsftpd), xinted". Ouvrez le terminal exécutez sous la commande :
[[email protected] ~]# yum install dhcp tftp tftp-server syslinux vsftpd xinetd
Étape 2 Configurer le serveur DHCP pour PXE
Lorsque nous installons le package dhcp, un exemple de fichier de configuration du serveur dhcp est créé à "/usr/share/doc/dhcp*/dhcpd.conf.example ", bien que le fichier de configuration de dhcp se trouve dans '/etc/dhcp/dhcpd.conf '.
Copiez les lignes suivantes dans le fichier "/etc/dhcp/dhcpd.conf", remplacez le sous-réseau IP et d'autres détails selon votre environnement.
[[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"; }
Étape : 3 Modifier et configurer le serveur tftp (/etc/xinetd.d/tftp)
TFTP (Trivial File Transfer Protocol) est utilisé pour transférer des fichiers du serveur de données à ses clients sans aucune sorte d'authentification. Dans le cas d'une configuration de serveur PXE, tftp est utilisé pour le chargement du bootstrap. Pour configurer le serveur tftp, éditez son fichier de configuration ' /etc/xinetd.d/tftp ', changez le paramètre 'disable =yes' en 'disable =no' et laissez les autres paramètres tels quels.
[[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 }
Tous les fichiers liés au démarrage réseau doivent être placés dans le répertoire racine tftp "/var/lib/tftpboot ”
Exécutez les commandes suivantes pour copier les fichiers de démarrage réseau requis dans '/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] ~]#
Étape :4 Montez le fichier ISO CentOS 7.x et copiez son contenu sur le serveur ftp local
Dans mon cas, j'ai déjà téléchargé le fichier iso CentOS 7.x sur mon serveur PXE. Exécutez les commandes ci-dessous pour monter le fichier iso, puis copiez son contenu dans le répertoire du serveur 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/
Copiez le fichier Kernel (vmlimz) et le fichier initrd du fichier iso monté vers '/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] ~]#
Vous pouvez maintenant démonter le fichier iso à l'aide de la commande "umount"
[[email protected] ~]# umount /mnt/ [[email protected] ~]#
Étape : 5 Créer un fichier de menu kickStart et PXE.
Avant de créer le fichier kickstart, créons d'abord le mot de passe root dans une chaîne cryptée car nous utiliserons cette chaîne de mot de passe cryptée dans le fichier kickstart.
[[email protected] ~]# openssl passwd -1 [email protected]# $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 [[email protected] ~]#
Le fichier de démarrage par défaut du système est placé sous /root avec le nom 'anaconda-ks.cfg '. Nous allons créer un nouveau kickstart sous le dossier /var/ftp/pub avec le nom ‘centos7.cfg '
Copiez le contenu suivant dans le nouveau fichier kickstart. Veuillez modifier le fichier kickstart selon vos besoins.
[[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
Créez un fichier de menu PXE (/var/lib/tftpboot/pxelinux.cfg/default ), copiez le contenu suivant dans le fichier de 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
Étape :6 Démarrez et activez les services xinetd, dhcp et vsftpd.
Utilisez les commandes ci-dessous pour démarrer et activer xinetd, dhcp et 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] ~]#
Dans le cas où SELinux est activé, définissez la règle selinux suivante pour le serveur ftp.
[[email protected] ~]# setsebool -P allow_ftpd_full_access 1 [[email protected] ~]#
Ouvrez les ports dans le pare-feu du système d'exploitation à l'aide des commandes firewall-cmd suivantes
[[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] ~]#
Jusqu'à présent, l'installation et la configuration du serveur PXE sont maintenant terminées.
Étape :7 Démarrez les clients avec l'option de démarrage pxe.
Comme on peut le voir ci-dessus, l'installation a été lancée sans aucune interaction humaine. J'espère que vous apprécierez l'installation et la configuration du serveur PXE. Veuillez partager vos commentaires et commentaires.