3.3. Configuration d'une image de base personnalisée pour Microsoft Azure
Pour déployer une machine virtuelle (VM) RHEL 9 avec des paramètres spécifiques dans Azure, vous pouvez créer une image de base personnalisée pour la VM. Les sections suivantes décrivent les modifications de configuration supplémentaires requises par Azure.
3.3.1. Installation des pilotes de périphériques Hyper-V Copier lienLien copié sur presse-papiers!
Microsoft fournit des pilotes de périphériques de réseau et de stockage dans le cadre de ses services d'intégration Linux (LIS) pour Hyper-V. Il se peut que vous deviez installer les pilotes de périphériques Hyper-V sur l'image de la VM avant de l'approvisionner en tant que machine virtuelle Azure (VM). Utilisez la commande lsinitrd | grep hv pour vérifier que les pilotes sont installés.
Procédure
Entrez la commande suivante
greppour déterminer si les pilotes de périphériques Hyper-V requis sont installés.lsinitrd | grep hv
# lsinitrd | grep hvCopy to Clipboard Copied! Toggle word wrap Toggle overflow Dans l'exemple ci-dessous, tous les pilotes nécessaires sont installés.
*lsinitrd | grep hv*
# *lsinitrd | grep hv* drwxr-xr-x 2 root root 0 Aug 12 14:21 usr/lib/modules/3.10.0-932.el{ProductNumber}.x86_64/kernel/drivers/hv -rw-r--r-- 1 root root 31272 Aug 11 08:45 usr/lib/modules/3.10.0-932.el{ProductNumber}.x86_64/kernel/drivers/hv/hv_vmbus.ko.xz -rw-r--r-- 1 root root 25132 Aug 11 08:46 usr/lib/modules/3.10.0-932.el{ProductNumber}.x86_64/kernel/drivers/net/hyperv/hv_netvsc.ko.xz -rw-r--r-- 1 root root 9796 Aug 11 08:45 usr/lib/modules/3.10.0-932.el{ProductNumber}.x86_64/kernel/drivers/scsi/hv_storvsc.ko.xzCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si tous les pilotes ne sont pas installés, suivez les étapes suivantes.
NoteUn pilote
hv_vmbuspeut exister dans l'environnement. Même si ce pilote est présent, effectuez les étapes suivantes.-
Créez un fichier nommé
hv.confdans/etc/dracut.conf.d. Ajoutez les paramètres de pilote suivants au fichier
hv.conf.add_drivers+=" hv_vmbus " add_drivers+=" hv_netvsc " add_drivers+=" hv_storvsc " add_drivers+=" nvme "
add_drivers+=" hv_vmbus " add_drivers+=" hv_netvsc " add_drivers+=" hv_storvsc " add_drivers+=" nvme "Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteNotez les espaces avant et après les guillemets, par exemple,
add_drivers =" hv_vmbus ". Cela permet de s'assurer que des pilotes uniques sont chargés au cas où d'autres pilotes Hyper-V existeraient déjà dans l'environnement.Régénérer l'image
initramfs.dracut -f -v --regenerate-all
# dracut -f -v --regenerate-allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Redémarrer la machine.
-
Exécutez la commande
lsinitrd | grep hvpour vérifier que les pilotes sont installés.
3.3.2. Effectuer les changements de configuration nécessaires au déploiement de Microsoft Azure Copier lienLien copié sur presse-papiers!
Avant de déployer votre image de base personnalisée dans Azure, vous devez effectuer des changements de configuration supplémentaires pour vous assurer que la machine virtuelle (VM) peut fonctionner correctement dans Azure.
Procédure
- Connectez-vous à la VM.
Enregistrez la VM et activez le référentiel Red Hat Enterprise Linux 9.
subscription-manager register --auto-attach
# subscription-manager register --auto-attach Installed Product Current Status: Product Name: Red Hat Enterprise Linux for x86_64 Status: SubscribedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que les paquets
cloud-initethyperv-daemonssont installés.dnf install cloud-init hyperv-daemons -y
# dnf install cloud-init hyperv-daemons -yCopy to Clipboard Copied! Toggle word wrap Toggle overflow Créez les fichiers de configuration
cloud-initnécessaires à l'intégration avec les services Azure :Pour activer la journalisation du service d'échange de données Hyper-V (KVP), créez le fichier de configuration
/etc/cloud/cloud.cfg.d/10-azure-kvp.cfget ajoutez-y les lignes suivantes.reporting: logging: type: log telemetry: type: hypervreporting: logging: type: log telemetry: type: hypervCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pour ajouter Azure en tant que source de données, créez le fichier de configuration
/etc/cloud/cloud.cfg.d/91-azure_datasource.cfget ajoutez-y les lignes suivantes.datasource_list: [ Azure ] datasource: Azure: apply_network_config: Falsedatasource_list: [ Azure ] datasource: Azure: apply_network_config: FalseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour s'assurer que le chargement automatique de certains modules du noyau est bloqué, modifiez ou créez le fichier
/etc/modprobe.d/blocklist.confet ajoutez-y les lignes suivantes.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifier les règles relatives aux périphériques réseau sur
udev:Supprimez les règles suivantes relatives aux périphériques réseau persistants, si elles existent.
rm -f /etc/udev/rules.d/70-persistent-net.rules rm -f /etc/udev/rules.d/75-persistent-net-generator.rules rm -f /etc/udev/rules.d/80-net-name-slot-rules
# rm -f /etc/udev/rules.d/70-persistent-net.rules # rm -f /etc/udev/rules.d/75-persistent-net-generator.rules # rm -f /etc/udev/rules.d/80-net-name-slot-rulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pour vous assurer que Accelerated Networking on Azure fonctionne comme prévu, créez une nouvelle règle de périphérique réseau
/etc/udev/rules.d/68-azure-sriov-nm-unmanaged.ruleset ajoutez-y la ligne suivante.SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Configurez le service
sshdpour qu'il démarre automatiquement.systemctl enable sshd systemctl is-enabled sshd
# systemctl enable sshd # systemctl is-enabled sshdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Modifier les paramètres de démarrage du noyau :
Ouvrez le fichier
/etc/default/grubet assurez-vous que la ligneGRUB_TIMEOUTcontient la valeur suivante.GRUB_TIMEOUT=10
GRUB_TIMEOUT=10Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimer les options suivantes à la fin de la ligne
GRUB_CMDLINE_LINUXsi elles sont présentes.rhgb quiet
rhgb quietCopy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que le fichier
/etc/default/grubcontient les lignes suivantes avec toutes les options spécifiées.GRUB_CMDLINE_LINUX="loglevel=3 crashkernel=auto console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300" GRUB_TIMEOUT_STYLE=countdown GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="loglevel=3 crashkernel=auto console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300" GRUB_TIMEOUT_STYLE=countdown GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Régénérer le fichier
grub.cfg.Sur une machine basée sur le BIOS :
grub2-mkconfig -o /boot/grub2/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Sur une machine basée sur l'UEFI :
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si votre système utilise un emplacement autre que celui par défaut pour
grub.cfg, adaptez la commande en conséquence.
Configurez l'agent Windows Azure Linux (
WALinuxAgent) :Installez et activez le paquetage
WALinuxAgent.dnf install WALinuxAgent -y systemctl enable waagent
# dnf install WALinuxAgent -y # systemctl enable waagentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pour s'assurer qu'une partition de swap n'est pas utilisée dans les VM provisionnées, modifiez les lignes suivantes dans le fichier
/etc/waagent.conf.Provisioning.DeleteRootPassword=y ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Provisioning.DeleteRootPassword=y ResourceDisk.Format=n ResourceDisk.EnableSwap=nCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Préparer la VM pour le provisionnement Azure :
Désenregistrez la VM du Gestionnaire d'abonnements de Red Hat.
subscription-manager unregister
# subscription-manager unregisterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Nettoyer les détails de l'approvisionnement existants.
waagent -force -deprovision
# waagent -force -deprovisionCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCette commande génère des avertissements, ce qui est normal car Azure gère automatiquement le provisionnement des machines virtuelles.
Nettoyez l'historique du shell et arrêtez la VM.
export HISTSIZE=0 poweroff
# export HISTSIZE=0 # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow