Recherche de site Web

Configuration d'un « serveur de démarrage réseau PXE » pour plusieurs installations de distribution Linux dans RHEL/CentOS 7


Serveur PXE – Environnement d'exécution de pré-lancement – demande à un ordinateur client de démarrer, d'exécuter ou d'installer un système d'exploitation directement à partir d'une interface réseau, éliminant ainsi le besoin de graver un CD/DVD ou d'utiliser un support physique, ou, peut faciliter le travail d'installation de distributions Linux sur votre infrastructure réseau sur plusieurs machines en même temps.

Exigences

  1. Procédure d'installation minimale de CentOS 7
  2. Procédure d'installation minimale de RHEL 7
  3. Configurer l'adresse IP statique dans RHEL/CentOS 7
  4. Supprimer les services indésirables dans RHEL/CentOS 7
  5. Installez le serveur NTP pour définir l'heure système correcte dans RHEL/CentOS 7

Cet article explique comment installer et configurer un serveur PXE sur RHEL/CentOS 7 x64 bits avec des référentiels d'installation locaux en miroir, sources fournies. par l'image ISO DVD CentOS 7, avec l'aide du serveur DNSMASQ.

Qui fournit les services DNS et DHCP, le package Syslinux qui fournit des chargeurs de démarrage pour le démarrage réseau, TFTP-Server, qui permet images amorçables disponibles pour être téléchargées via le réseau à l'aide du Trivial File Transfer Protocol (TFTP) et du serveur VSFTPD qui hébergera l'image DVD en miroir montée localement - qui agira comme un RHEL officiel Dépôt d'installation miroir /CentOS 7 à partir duquel le programme d'installation extraira les packages requis.

Étape 1 : Installer et configurer le serveur DNSMASQ

1. Inutile de vous rappeler qu'il est absolument nécessaire que l'une des interfaces de votre carte réseau, au cas où votre serveur dispose de plusieurs cartes réseau, soit configurée avec une adresse IP statique de la même plage IP que celle à laquelle appartient le segment de réseau qui fournira les services PXE.

Ainsi, après avoir configuré votre adresse IP statique, mis à jour votre système et effectué d'autres paramètres initiaux, utilisez la commande suivante pour installer le démon DNSMASQ.

yum install dnsmasq

2. Le fichier de configuration principal par défaut de DNSMASQ situé dans le répertoire /etc est explicite mais se veut assez difficile à éditer, en raison de ses explications très commentées.

Assurez-vous d'abord de sauvegarder ce fichier au cas où vous auriez besoin de le consulter plus tard, puis créez un nouveau fichier de configuration vierge à l'aide de votre éditeur de texte préféré en exécutant les commandes suivantes.

mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

3. Maintenant, copiez et collez les configurations suivantes dans le fichier dnsmasq.conf et assurez-vous de modifier les instructions expliquées ci-dessous pour qu'elles correspondent à vos paramètres réseau en conséquence.

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Les déclarations que vous devez modifier sont les suivantes :

  1. interface – Interfaces que le serveur doit écouter et fournir des services.
  2. bind-interfaces – Décommentez pour lier uniquement sur cette interface.
  3. domaine – Remplacez-le par votre nom de domaine.
  4. dhcp-range – Remplacez-le par la plage IP définie par votre masque de réseau sur ce segment.
  5. dhcp-boot – Remplacez l'instruction IP par l'adresse IP de votre interface.
  6. dhcp-option=3,192.168.1.1 – Remplacez l'adresse IP par la passerelle de votre segment de réseau.
  7. dhcp-option=6,92.168.1.1 – Remplacez l'adresse IP par l'adresse IP de votre serveur DNS – plusieurs IP DNS peuvent être définies.
  8. server=8.8.4.4 – Mettez les adresses IP de vos redirecteurs DNS.
  9. dhcp-option=28,10.0.0.255 – Remplacez l'adresse IP par l'adresse de diffusion réseau – facultativement.
  10. dhcp-option=42,0.0.0.0 – Mettez vos serveurs de temps réseau – en option (l'adresse 0.0.0.0 est pour l'auto-référence).
  11. pxe-prompt – Laissez-le par défaut – signifie appuyer sur la touche F8 pour accéder au menu 60 avec un temps d'attente de quelques secondes.
  12. pxe=service – Utilisez x86PC pour les architectures 32 bits/64 bits et entrez une invite de description de menu sous les guillemets. D'autres types de valeurs peuvent être : PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI et X86-64_EFI.
  13. enable-tftp – Active le serveur TFTP intégré.
  14. tftp-root – Utilisez /var/lib/tftpboot – l'emplacement de tous les fichiers de démarrage réseau.

Pour d'autres options avancées concernant le fichier de configuration, n'hésitez pas à lire le manuel dnsmasq.

Étape 2 : Installer les chargeurs de démarrage SYSLINUX

4. Après avoir modifié et enregistré le fichier de configuration principal DNSMASQ, continuez et installez le package du chargeur de démarrage Syslinx PXE en exécutant la commande suivante.

yum install syslinux

5. Les fichiers des chargeurs de démarrage PXE résident dans le chemin système absolu /usr/share/syslinux, vous pouvez donc le vérifier en répertoriant le contenu de ce chemin. Cette étape est facultative, mais vous devrez peut-être connaître ce chemin car à l'étape suivante, nous copierons tout son contenu sur le chemin du Serveur TFTP.

ls /usr/share/syslinux

Étape 3 : Installez le serveur TFTP et remplissez-le avec les chargeurs de démarrage SYSLINUX

6. Maintenant, passons à l'étape suivante et installons le TFTP-Server, puis copions tous les fichiers bootloders fournis par le package Syslinux depuis l'emplacement indiqué ci-dessus vers / var/lib/tftpboot en exécutant les commandes suivantes.

yum install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

Étape 4 : Installer le fichier de configuration du serveur PXE

7. Généralement, le serveur PXE lit sa configuration à partir d'un groupe de fichiers spécifiques (fichiers GUID – en premier, MAC files – suivant, Fichier par défaut – dernier) hébergé dans un dossier appelé pxelinux.cfg, qui doit être situé dans le répertoire spécifié dans tftp-root instruction du fichier de configuration principal DNSMASQ.

Créez le répertoire requis pxelinux.cfg et remplissez-le avec un fichier par défaut en exécutant les commandes suivantes.

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. Il est maintenant temps de modifier le fichier de configuration du Serveur PXE avec les options d'installation des distributions Linux valides. Notez également que tous les chemins utilisés dans ce fichier doivent être relatifs au répertoire /var/lib/tftpboot.

Ci-dessous, vous pouvez voir un exemple de fichier de configuration que vous pouvez utiliser, mais modifiez les images d'installation (fichiers noyau et initrd), les protocoles (FTP, HTTP, HTTPS, NFS) et les adresses IP pour refléter les référentiels et chemins d'installation de votre réseau en conséquence.

nano /var/lib/tftpboot/pxelinux.cfg/default

Ajoutez l’extrait entier suivant au fichier.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount

label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append  initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

Comme vous pouvez le voir, les images de démarrage CentOS 7 (noyau et initrd) résident dans un répertoire nommé centos7 par rapport à /var/lib/tftpboot (sur un chemin système absolu, cela signifierait /var/lib/tftpboot/centos7) et les référentiels du programme d'installation sont accessibles en utilisant le protocole FTP sur l'emplacement réseau 192.168.1.20/pub – dans ce cas, les dépôts sont hébergés localement car l'adresse IP est la même que l'adresse du serveur PXE).

Le menu étiquette 3 spécifie également que l'installation du client doit être effectuée à partir d'un emplacement distant via VNC (remplacez ici le mot de passe VNC par un mot de passe fort) dans le cas où vous installez sur un client sans tête. et le menu étiquette 2 précise comme
l'installation source un miroir Internet officiel CentOS 7 (ce cas nécessite une connexion Internet disponible sur le client via DHCP et NAT).

Important : comme vous le voyez dans la configuration ci-dessus, nous avons utilisé CentOS 7 à des fins de démonstration, mais vous pouvez également définir des images RHEL 7 et suivre toutes les instructions et configurations sont basés uniquement sur CentOS 7, alors soyez prudent lorsque vous choisissez la distribution.

Étape 5 : ajouter des images de démarrage CentOS 7 au serveur PXE

9. Pour cette étape, le noyau CentOS et les fichiers initrd sont requis. Pour obtenir ces fichiers, vous avez besoin de l'image ISO DVD CentOS 7. Alors, allez-y et téléchargez l'image DVD CentOS, placez-la dans votre lecteur de DVD et montez l'image sur le chemin système /mnt en exécutant la commande ci-dessous.

La raison pour laquelle nous utilisons le DVD et non une image CD minimale est le fait que plus tard, le contenu de ce DVD serait utilisé pour créer le
référentiels d'installation locale pour les sources FTP.

mount -o loop /dev/cdrom  /mnt
ls /mnt

Si votre machine n'a pas de lecteur de DVD, vous pouvez également télécharger CentOS 7 DVD ISO localement à l'aide des utilitaires wget ou curl à partir d'un miroir CentOS et le monter.

wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
mount -o loop /path/to/centos-dvd.iso  /mnt

10. Une fois le contenu du DVD disponible, créez le répertoire centos7 et copiez le noyau amorçable de CentOS 7 et les images initrd de l'emplacement monté du DVD vers la structure de dossiers centos7.

mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7

La raison d'utiliser cette approche est que, plus tard, vous pourrez créer de nouveaux répertoires séparés dans le chemin /var/lib/tftpboot et ajouter d'autres distributions Linux au menu PXE sans gâcher toute la structure de répertoires.

Étape 6 : Créer la source d'installation du miroir local CentOS 7

11. Bien que vous puissiez configurer des Miroirs de sources d'installation via divers protocoles tels que HTTP, HTTPS ou NFS, pour ce guide, j'ai choisi FTP protocole car il est très fiable et facile à configurer à l'aide du serveur vsftpd.

Installez davantage le démon vsftpd, copiez tout le contenu monté sur DVD dans le chemin du serveur par défaut vsftpd (/var/ftp/pub) – cela peut prendre un certain temps en fonction des ressources de votre système et ajouter autorisations lisibles sur ce chemin en exécutant les commandes suivantes.

yum install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

Étape 7 : démarrer et activer les démons à l’échelle du système

12. Maintenant que la configuration du serveur PXE est enfin terminée, démarrez les serveurs DNSMASQ et VSFTPD, vérifiez leur état et activez-le à l'échelle du système, pour démarre automatiquement après chaque redémarrage du système, en exécutant les commandes ci-dessous.

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

Étape 8 : Ouvrez le pare-feu et testez la source d'installation FTP

13. Pour obtenir une liste de tous les ports qui doivent être ouverts sur votre pare-feu pour que les machines clientes puissent atteindre et démarrer à partir du serveur PXE, exécutez la commande netstat et ajoutez CentOS. 7 Firewalld règle en conséquence les ports d'écoute dnsmasq et vsftpd.

netstat -tulpn
firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. Pour tester le chemin réseau de la source d'installation FTP, ouvrez un navigateur localement (lynx devrait le faire) ou sur un autre ordinateur et saisissez l'adresse IP de votre serveur PXE avec
Protocole FTP suivi de l'emplacement réseau /pub sur l'URL déposée et le résultat doit être tel que présenté dans la capture d'écran ci-dessous.

ftp://192.168.1.20/pub

15. Pour déboguer le serveur PXE en cas d'éventuelles erreurs de configuration ou d'autres informations et diagnostics en mode direct, exécutez la commande suivante.

tailf /var/log/messages

16. Enfin, la dernière étape obligatoire que vous devez effectuer est de démonter le DVD CentOS 7 et de retirer le support physique.

umount /mnt

Étape 9 : configurer les clients pour démarrer à partir du réseau

17. Vos clients peuvent désormais démarrer et installer CentOS 7 sur leurs machines en configurant le démarrage réseau comme périphérique de démarrage principal à partir du BIOS de leur système ou en appuyant sur une touche spécifiée pendant Opérations BIOS POST comme spécifié dans le manuel de la carte mère.

Afin de choisir le démarrage réseau. Après l'apparition de la première invite PXE, appuyez sur la touche F8 pour accéder à la présentation, puis appuyez sur la touche Entrée pour passer au menu PXE.

18. Une fois que vous avez atteint le menu PXE, choisissez votre type d'installation CentOS 7, appuyez sur la touche Entrée et continuez la procédure d'installation de la même manière que vous pourriez l'installer à partir d'un ordinateur local. périphérique de démarrage multimédia.

Veuillez noter que l'utilisation de la variante 2 de ce menu nécessite une connexion Internet active sur le client cible. Aussi, ci-dessous
captures d'écran, vous pouvez voir un exemple d'installation à distance d'un client via VNC.

C'est tout pour configurer un serveur PXE minimal sur CentOS 7. Dans mon prochain article de cette série, je discuterai d'autres problèmes concernant cette configuration de serveur PXE, tels que la configuration des installations automatisées de CentOS 7 à l'aide des fichiers Kickstart et l'ajout d'autres distributions Linux. au menu PXE – Serveur Ubuntu et Debian 7.