GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer le démarrage PXE pour le matériel UEFI

L'implémentation de la virtualisation Red Hat (RHV) dans différents réseaux nécessite une sorte d'automatisation pour installer de nouveaux hôtes RHV. Il est particulièrement pratique d'automatiser le processus lorsqu'il existe de légères différences entre les différents hôtes d'un même réseau.

Dans cet article, je vous explique le processus de conception et de configuration d'un environnement d'exécution de pré-lancement (PXE), qui comprend la configuration d'un serveur PXE, la configuration d'un serveur DHCP et l'installation d'un serveur TFTP. La configuration d'un environnement de démarrage PXE n'est pas particulièrement difficile, mais nécessite plusieurs étapes critiques et chaque étape contient beaucoup de détails.

Conception

La configuration d'un serveur PXE pour provisionner différentes batteries de serveurs situées sur différents réseaux est bénéfique, surtout si vous prévoyez d'automatiser le provisionnement ultérieurement.

Dans cette configuration, nous configurons un serveur PXE et deux fermes de serveurs différents. Le réseau de la ferme de chaque serveur possède son propre réseau PXE dédié (appelé "Réseau de provisionnement" dans cet article), tandis que le serveur PXE lui-même ne se trouve dans aucun de ces réseaux.

Vous trouverez ci-dessous le schéma du réseau avec des exemples de plages d'adresses IP :

Cette conception permet d'obtenir les résultats suivants :

  1. Cette configuration est plus sécurisée que l'utilisation de réseaux de gestion classiques (c'est-à-dire ovirtmgmt).
  2. Cette configuration protège les réseaux de gestion de la tempête de diffusion pouvant être causée par les requêtes DHCP (Dynamic Host Configuration Protocol).
  3. Les serveurs PXE doivent atteindre un serveur satellite ou Internet via une interface DMZ ou via un serveur proxy pour télécharger les packages nécessaires. Avoir le(s) serveur(s) PXE en dehors des réseaux de provisionnement protège ces réseaux contre toute compromission.

Hypothèses

Cet article est basé sur les hypothèses suivantes par souci de simplicité :

1. La configuration PXE (DHCP, Trivial File Transfer Protocol (TFTP) et Hypertext Transfer Protocol (HTTP)) est hébergée sur un seul serveur, bien que cela ne soit pas obligatoire.

L'installation du système d'exploitation (OS) sur un serveur suit l'ordre dans l'image ci-dessous :

2. Le serveur PXE peut accéder à Internet via un serveur proxy, sinon un serveur satellite est utilisé.

3. Le serveur PXE est configuré sur Red Hat Enterprise Linux (RHEL) 7.x.

Système d'exploitation du serveur PXE

Le serveur PXE est installé sur un serveur doté de quatre processeurs principaux et de quatre Go de mémoire, bien que des serveurs avec des spécifications inférieures puissent fonctionner.

Le serveur possède une carte d'interface réseau (NIC) qui est utilisée pour tous les types de trafic, bien que vous puissiez avoir différentes interfaces réseau si la ségrégation du réseau est nécessaire.

L'image ISO RHEL7.6 est utilisée pour installer le système d'exploitation, avec l'option d'installation minimale.

Après l'installation, l'enregistrement du système d'exploitation et l'activation des référentiels pertinents sont nécessaires :

1. Modifiez le rhsm fichier :

# vi /etc/rhsm/rhsm.conf

2. Dans la section ci-dessous, ajoutez les détails pertinents du serveur proxy :

#an http proxy server to use
proxy_hostname =

#port for http proxy server
proxy_port =

#user name for authenticating to an http proxy, if needed
proxy_user =

#password for basic http proxy auth, if needed
proxy_password =

3. Enregistrez le fichier.

4. Enregistrez et connectez le système :

#subscription-manager register --auto-attach
username: your-rhsm-username
password: your-rhsm-password

5. Activer les référentiels nécessaires :

# subscription-manager repos --enable=rhel-7-server-rh-common-rpms --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms

Configuration DHCP

Vous trouverez ci-dessous les étapes de configuration du DHCP pour prendre en charge le démarrage PXE pour les serveurs UEFI :

1. Installez le serveur DHCP :

# yum install -y dhcp

2. Ajustez le fichier de configuration DHCP (/etc/dhcp/dhcpd.conf ). Voici un exemple de fichier de configuration basé sur le schéma de réseau ci-dessus :

# DHCP Server Configuration File
#
#. see /usr/share/doc/dhcp*/dhcpd.conf.example
#
#. see dhcpd.conf(5) man page


option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
   option routers 192.168.1.0;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.1.255;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
   option routers 192.168.2.1;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.2.255;
   range 192.168.2.2 192.168.2.254;

   class "pxeclients" {
     match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
     next-server 192.168.1.10;
     if option architecture-type = 00:07 {
        filename "shim.efi";
        } else {
        filename "pxelinux/pxelinux.0";
     }
   }
}

subnet 192.168.3.0 netmask 255.255.255.0 {
   option routers 192.168.3.1;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.3.255;
   range 192.168.3.2 192.168.3.254;

   class "pxeclients" {
     match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
     next-server 192.168.1.10;
     if option architecture-type = 00:07 {
        filename "shim.efi";
        } else {
        filename "pxelinux/pxelinux.0";
     }
   }
}

3. Activez et démarrez le dhcpd service :

# systemctl enable dhcpd; systemctl start dhcpd

Configuration TFTP

Le serveur TFTP est nécessaire pour fournir :

  1. initrd.img - Le "boot loader" qui sera chargé sur un disque RAM
  2. vmlinuz - Un noyau Linux amorçable compressé

La configuration du serveur TFTP pour prendre en charge le démarrage PXE pour les serveurs UEFI est un peu différente de la configuration pour prendre en charge les serveurs BIOS.

Vous trouverez ci-dessous les étapes de configuration d'un serveur TFTP pour prendre en charge le démarrage PXE pour les serveurs UEFI :

1. Installez le serveur TFTP :

# yum install -y tftp-server

2. Téléchargez les packages nécessaires à partir des référentiels RHEL :

# mkdir /root/packages

# cd /root/packages

# yumdownloader shim-version-architecture

# yumdownloader grub2-efi- version-architecture

3. Extrayez les fichiers binaires nécessaires :

# rpm2cpio shim-version-architecture.rpm | cpio -dimv

# rpm2cpio grub2-efi- version-architecture.rpm | cpio -dimv

# cp boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/

# cp boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/

4. Téléchargez l'image ISO et déplacez-la vers le serveur PXE.

5. Montez l'image ISO :

# mount -t iso9660 /path/iso-file.iso /mnt -o loop,ro

6. Créez un sous-répertoire pour stocker les fichiers image de démarrage dans /var/lib/tftpboot :

# mkdir -p /var/lib/tftp/images/rhv-4.3

7. Copiez les fichiers image de démarrage :

# cp /mnt/pxeboot/{vmlinuz,initrd.img} /var/lib/tftp/images/rhv-4.3/

8. Créez un fichier de configuration nommé grub.cfg dans /var/lib/tftpboot . Voici un exemple de fichier de configuration sur /var/lib/tftpboot/grub.cfg :

set default=0
set timeout=60
menuentry  'Install RHVH 4.3' --class fedora --class gnu-linux --class gnu --class os {
   linuxefi images/rhv-4.3/vmlinuz inst.ks=http://192.168.1.10/kickstarts/ks.cfg inst.stage2=http:// 192.168.1.10/rhv4.3/ISO quiet
   initrdefi images/rhv-4.3/initrd.img
}

9. Activez et démarrez le tftp service :

#systemctl enable tftp; systemctl start tftp

Conseils concernant la création du grub.cfg

Créer un grub.cfg peut nécessiter des paramètres supplémentaires en fonction du réseau. Voici quelques paramètres couramment utilisés qui pourraient être nécessaires dans le grub.cfg :

rd.net.timeout.carrier=60

Si cette option est définie, dhclient est appelé avec -timeout , il est donc utile si les réponses du serveur DHCP sont retardées :

ip=device-name:dhcp

Ceci est utile dans le cas où le serveur à installer possède plusieurs interfaces et qu'une seule est dédiée au démarrage PXE.

Pour plus d'options, vous pouvez vous référer à la page de manuel de la ligne de commande Dracut.

Conclusion

La configuration d'un système PXE est un processus assez long, nous continuerons donc la semaine prochaine avec la deuxième partie. À ce stade, vous disposerez d'un serveur PXE fonctionnel, d'un serveur DHCP configuré pour fournir des adresses IP aux systèmes démarrés par PXE et d'un serveur TFTP pour fournir un système amorçable et des images ISO.

Dans la deuxième partie, je continuerai avec la configuration PXE en vous montrant comment configurer le serveur HTTP, le fichier Kickstart, le pare-feu basé sur l'hôte et le réseau. J'aborde également le dépannage de votre configuration PXE et je couvre certaines options d'automatisation.

[ Besoin d'en savoir plus sur l'administration système Linux ? Suivez un cours d'administration système Red Hat. ]


Linux
  1. Comment démarrer le serveur Ubuntu 14.04 en réseau avec Pxe à l'aide de NFS?

  2. Comment configurer DomainKeys pour le courrier électronique sur un serveur dédié

  3. Comment configurer VSFTPD sur CentOS 8

  4. Comment définir un pseudo par défaut pour les nouvelles connexions irssi ?

  5. Comment définir le chemin pour les commandes sudo

Comment configurer SSH sur CentOS et RHEL

Comment configurer un serveur TeamSpeak sur CentOS 7

Comment configurer un serveur Minecraft sur CentOS 7

Comment configurer Apache en tant que serveur proxy frontal pour Node.js CentOS 8

Comment définir des limites pour les e-mails sortants ?

Comment configurer un serveur domestique