Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’agent de machine virtuelle Linux Azure (waagent) gère l’approvisionnement Linux et FreeBSD, ainsi que l’interaction entre la machine virtuelle et le contrôleur de structure Azure. Outre le fait que l’agent Linux apporte la fonctionnalité de provisionnement, Azure offre la possibilité d’utiliser cloud-init pour certains systèmes d’exploitation Linux.
Important
Pour obtenir les dernières informations sur la prise en charge de FIPS 140-3 par l'Agent Invité VM et les extensions, accédez à aka.ms/linuxagentfipssupport.
L’agent Linux apporte les fonctionnalités suivantes pour les déploiements de machines virtuelles Linux et FreeBSD dans Azure. Pour plus d’informations, consultez la page Readme de l’agent de machine virtuelle Linux Azure sur GitHub.
Note
Essayez l’assistance de machine virtuelle pour accélérer les diagnostics. Nous vous recommandons d’exécuter l’assistance de machine virtuelle pour Windows ou l’assistance de machine virtuelle pour Linux. Ces outils de diagnostic basés sur des scripts vous aident à identifier les problèmes courants qui affectent l’agent invité de machine virtuelle Azure et l’intégrité globale des machines virtuelles.
Si vous rencontrez des problèmes de performances avec des machines virtuelles, avant de contacter le support technique, exécutez ces outils.
Approvisionnement d’images
- Crée un compte d’utilisateur.
- Configure les types d’authentification SSH.
- Déploie des clés publiques et des paires de clés Secure Shell (SSH).
- Définit le nom d’hôte.
- Publie le nom d’hôte dans le système DNS (Platform Domain Name System).
- Signale l’empreinte digitale de la clé hôte SSH à la plateforme.
- Gère le disque de ressources.
- Met en forme et monte le disque de ressources.
- Configure l’espace d’échange.
Mise en réseau
- Gère les itinéraires pour améliorer la compatibilité avec les serveurs DHCP de plateforme.
- Garantit la stabilité du nom de l’interface réseau.
Noyau
- Configure la NUMA virtuelle (désactivée pour le noyau 2.6.37).
- Consomme l'entropie de Hyper-V de/dev/random.
- Configurez les délais d’expiration SCSI pour le périphérique racine, qui peut être distant.
Diagnostics
- Assure la redirection de la console vers le port série.
Déploiement avec System Center Virtual Machine Manager
- Détecte et démarre l’agent Virtual Machine Manager pour Linux lorsqu’il s’exécute dans un environnement System Center Virtual Machine Manager 2012 R2.
Extension de machine virtuelle
- Injecte des composants créés par Microsoft et des partenaires dans des machines virtuelles Linux pour activer l’automatisation des logiciels et de la configuration.
Vous trouverez une implémentation de référence d’extension de machine virtuelle sur GitHub.
Communication
Le flux d’informations de la plateforme vers l’agent emprunte deux canaux :
- Un DVD attaché au moment du démarrage pour les déploiements de machines virtuelles. Ce DVD comporte un fichier de configuration conforme au format OVF (Open Virtualization Format) qui contient toutes les informations de provisionnement autres que les paires de clés SSH.
- Un point de terminaison TCP qui expose une API REST servant à obtenir la configuration du déploiement et de la topologie.
Conditions requises
Le test confirme que les systèmes suivants fonctionnent avec l’agent de machine virtuelle Linux Azure.
Note
Cette liste peut se distinguer des distributions Linux approuvées sur Azure.
| Éditeur | Distribution | x64 | ARM64 |
|---|---|---|---|
| Communauté Alma Linux | Alma Linux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Credativ | Debian | 10 ou plus | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Linux Azure | 2.x | 2.x |
| openSUSE Project | OpenSUSE | 12.3+ | Non pris en charge |
| Oracle | Oracle Linux | 6.4+, 7.x+, 8.x+ | Non pris en charge |
| Red Hat | Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ | 8.6+, 9.0+, 10.x+ |
| CIQ | Linux rocailleux | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+, 15.x+ | 15.x SP4+ |
| Canonical | Ubuntu (versions LTS) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
Autres systèmes pris en charge :
- L’agent fonctionne sur plusieurs systèmes que ceux répertoriés dans la documentation. Toutefois, nous ne testons pas ou ne fournissons pas de support pour les distributions qui ne figurent pas dans la liste approuvée. En particulier, FreeBSD n’est pas approuvé. Vous pouvez essayer FreeBSD 8. Si vous rencontrez des problèmes, vous pouvez ouvrir un problème dans notre dépôt GitHub et nous pourrions être en mesure d’aider.
Pour fonctionner correctement, l’agent Linux est tributaire des packages système suivants :
- Python 2.6+
- OpenSSL 1.0+
- OpenSSH 5.3+
- Utilitaires de système de fichiers : sfdisk, fdisk, mkfs, parted
- Outils de mot de passe : chpasswd, sudo
- Outils de traitement de texte : sed, grep
- Outils réseau : ip-route
- Prise en charge du noyau pour le montage de systèmes de fichiers UDF
Vérifiez que votre machine virtuelle a accès à l’adresse IP 168.63.129.16. Pour plus d’informations, consultez Qu’est-ce que l’adresse IP 168.63.129.16 ?
Installation
Pour installer et mettre à niveau l’agent de machine virtuelle Linux Azure, la méthode prise en charge consiste à utiliser un package RPM ou DEB du référentiel de packages de votre distribution. Tous les fournisseurs de distribution approuvés intègrent le package de l’agent de machine virtuelle Linux Azure dans leurs images et référentiels. Certaines distributions Linux peuvent désactiver la fonctionnalité mise à jour automatique de l’agent de machine virtuelle Linux Azure. Certains des référentiels peuvent également contenir des versions antérieures. Les versions antérieures peuvent rencontrer des problèmes avec les extensions modernes. Nous vous recommandons donc d’installer la dernière version stable.
Vous devez vous assurer que l’agent de machine virtuelle Linux Azure est correctement mis à jour. Nous vous recommandons d’avoir l’option AutoUpdate.Enabled=Y dans le /etc/waagent.conf fichier, car le commentaire de cette option entraîne également des valeurs par défaut. La présence de AutoUpdate.Enabled=N empêche l'agent de machine virtuelle Linux Azure de se mettre à jour correctement.
Pour connaître les options d’installation avancées, telles que l’installation à partir d’une source ou dans des emplacements personnalisés ou avec des préfixes, consultez Agent de machine virtuelle Linux Microsoft Azure. À part ces scénarios, nous ne prenons pas en charge ni ne recommandons pas la mise à niveau ou la réinstallation de l’agent de machine virtuelle Linux Azure à partir de la source.
Options de ligne de commande
Drapeaux
-
verbose: accroît la verbosité de la commande spécifiée. -
force: ignore la confirmation interactive pour certaines commandes.
Commandes
help: liste les commandes et les indicateurs pris en charge.deprovision: essaie de nettoyer le système et de le préparer pour un nouvel approvisionnement. L’opération supprime :- toutes les clés d’hôte SSH, si
Provisioning.RegenerateSshHostKeyPaira la valeurydans le fichier de configuration ; -
Configuration de
Nameserverdans /etc/resolv.conf ; - le mot de passe racine dans /etc/shadow, si
Provisioning.DeleteRootPassworda la valeurydans le fichier config ; - Baux du client DHCP mis en cache.
Le client réinitialise le nom d’hôte en
localhost.localdomain.Avertissement
L’annulation de l’approvisionnement ne garantit pas que l’image est exempte de toute information sensible et qu’elle convient à la redistribution.
- toutes les clés d’hôte SSH, si
deprovision+user: effectue toutes les opérations de la commandedeprovisionet supprime le dernier compte d’utilisateur provisionné (obtenu à partir de /var/lib/waagent) ainsi que les données associées. Utilisez ce paramètre pour déprovisionner une image précédemment approvisionnée sur Azure afin qu’elle puisse être capturée et réutilisée.version: affiche la version de waagent.serialconsole: configure GRUB pour marquer ttyS0, premier port série, en tant que console de démarrage. Ainsi, les journaux d’activité de démarrage du noyau sont envoyés au port série et sont prêts à être débogués.daemon: exécute waagent en tant que démon pour gérer l’interaction avec la plateforme. Cet argument est spécifié à waagent dans le script waagent init.start: exécute waagent comme processus en arrière-plan.
Configuration
Le fichier de configuration /etc/waagent.conf contrôle les actions de waagent. Voici un exemple de fichier de configuration :
Provisioning.Enabled=y
Provisioning.DeleteRootPassword=n
Provisioning.RegenerateSshHostKeyPair=y
Provisioning.SshHostKeyPairType=rsa
Provisioning.MonitorHostName=y
Provisioning.DecodeCustomData=n
Provisioning.ExecuteCustomData=n
Provisioning.AllowResetSysUser=n
Provisioning.PasswordCryptId=6
Provisioning.PasswordCryptSaltLength=10
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.MountOptions=None
ResourceDisk.EnableSwap=n
ResourceDisk.SwapSizeMB=0
LBProbeResponder=y
Logs.Verbose=n
OS.RootDeviceScsiTimeout=300
OS.OpensslPath=None
HttpProxy.Host=None
HttpProxy.Port=None
AutoUpdate.Enabled=y
Il existe trois types d’options de configuration : Boolean, String ou Integer. Vous pouvez attribuer aux options de configuration Boolean la valeur y ou n. Le mot clé None peut être utilisé dans le cas de certaines entrées de type chaîne.
Provisioning.Enabled
Type: Boolean
Default: y
Cette option permet à l'utilisateur d’activer ou de désactiver la fonctionnalité d'approvisionnement dans l'agent. Les valeurs valides sont y et n. Si l'approvisionnement est désactivé, les clés d'utilisateur et d'hôte SSH dans l'image sont conservées et toute configuration présente dans l'API d'approvisionnement Azure est ignorée.
Note
La valeur par défaut du paramètre Provisioning.Enabled est n dans les images cloud Ubuntu qui utilisent cloud-init pour l’approvisionnement.
Provisioning.DeleteRootPassword
Type: Boolean
Default: n
Si la valeur est y, l’agent efface le mot de passe racine du fichier /etc/shadow pendant le provisionnement.
Provisioning.RegenerateSshHostKeyPair
Type: Boolean
Default: y
Si la valeur est y, l’agent supprime toutes les paires de clés d’hôte SSH de /etc/ssh/ pendant le provisionnement, notamment celles de type ECDSA, DSA et RSA. L’agent génère une seule nouvelle paire de clés.
Configure le type de chiffrement pour la nouvelle paire de clés à l’aide de l’entrée Provisioning.SshHostKeyPairType. Certaines distributions recréent des paires de clés SSH pour tous les types de chiffrement manquants lorsque le démon SSH est redémarré. Un exemple est après un redémarrage.
Provisioning.SshHostKeyPairType
Type: String
Default: rsa
Vous pouvez attribuer à cette option un type d’algorithme de chiffrement pris en charge par le démon SSH sur la machine virtuelle. Les valeurs généralement prises en charge sont rsa, dsa et ecdsa. Le fichier putty.exe sur Windows ne prend pas en charge la valeur ecdsa. Si vous envisagez d’utiliser putty.exe sur Windows pour établir une connexion à un déploiement Linux, utilisez rsa ou dsa.
Provisioning.MonitorHostName
Type: Boolean
Default: y
Si la valeur est y, waagent surveille tout changement de nom d’hôte sur la machine virtuelle Linux retourné par la commande hostname. Waagent met ensuite automatiquement à jour la configuration réseau dans l’image pour répercuter le changement. Pour envoyer (push) le changement de nom aux serveurs DNS, le réseau redémarre sur la machine virtuelle. La connexion Internet est alors brièvement interrompue à cause de ce redémarrage.
Provisioning.DecodeCustomData
Type: Boolean
Default: n
Si la valeur est y, waagent décode CustomData en Base64.
Provisioning.ExecuteCustomData
Type: Boolean
Default: n
Si la valeur est y, waagent exécute CustomData après le provisionnement.
Provisioning.AllowResetSysUser
Type: Boolean
Default: n
Cette option permet de réinitialiser le mot de passe de l’utilisateur système. Elle est désactivée par défaut.
Provisioning.PasswordCryptId
Type: String
Default: 6
Cette option spécifie l’algorithme qu’utilise la fonction crypt quand elle génère un hachage de mot de passe. Les valeurs autorisées sont :
-
1: MD5 -
2a: Blowfish -
5: SHA-256 -
6: SHA-512
Provisioning.PasswordCryptSaltLength
Type: String
Default: 10
Cette option spécifie la longueur de la valeur salt aléatoire utilisée lors de la génération d’un code de hachage de mot de passe.
ResourceDisk.Format
Type: Boolean
Default: y
Si la valeur est y, waagent formate et monte le disque de ressources fourni par la plateforme, sauf si le type de système de fichiers demandé par l’utilisateur dans ResourceDisk.Filesystem est ntfs. L’agent rend une seule partition Linux (ID 83) disponible sur le disque. Cette partition n’est pas formatée si elle peut être correctement montée.
ResourceDisk.Filesystem
Type: String
Default: ext4
Cette option définit le type de système de fichiers pour le disque de ressources. Les valeurs prises en charge diffèrent selon la distribution Linux. Si la chaîne est X, alors mkfs.X doit être présent sur l'image Linux.
ResourceDisk.MountPoint
Type: String
Default: /mnt/resource
Cette option indique le chemin d’accès au disque de ressources lorsqu'il est monté. Le disque de ressources est un disque temporaire qui peut être vidé pendant le déprovisionnement de la machine virtuelle.
ResourceDisk.MountOptions
Type: String
Default: None
Cette option spécifie les options de montage de disque à transmettre à la commande mount -o. La valeur est une liste de valeurs séparées par des virgules, par exemple nodev,nosuid. Pour plus d’informations, consultez la page mount(8) du manuel.
ResourceDisk.EnableSwap
Type: Boolean
Default: n
Si vous définissez cette option, l’agent crée un fichier d’échange (/swapfile) sur le disque de ressources et l’ajoute à l’espace d’échange système.
ResourceDisk.SwapSizeMB
Type: Integer
Default: 0
Cette option indique la taille du fichier d’échange en mégaoctets.
Logs.Verbose
Type: Boolean
Default: n
Si vous définissez cette option, la verbosité du journal est renforcée. Waagent enregistre dans /var/log/waagent.log et utilise la fonctionnalité logrotate du système pour faire pivoter les journaux d’activité.
OS.EnableRDMA
Type: Boolean
Default: n
Si vous définissez cette option, l’agent tente de s’installer et charge ensuite un pilote de noyau RDMA qui correspond à la version du microprogramme du matériel sous-jacent.
OS.RootDeviceScsiTimeout
Type: Integer
Default: 300
Cette option configure le délai d’expiration SCSI en secondes sur le disque du système d’exploitation et les lecteurs de données. S’il n’est pas défini, les valeurs par défaut du système sont utilisées.
OS.OpensslPath
Type: String
Default: None
Vous pouvez utiliser cette option pour spécifier un autre chemin pour le binaire openssl à utiliser pour les opérations de chiffrement.
HttpProxy.Host, HttpProxy.Port
Type: String
Default: None
Si vous définissez cette option, l’agent utilise ce serveur proxy pour accéder à Internet.
AutoUpdate.Enabled
Type: Boolean
Default: y
Active ou désactive la mise à jour automatique du traitement de l’état de l’objectif. La valeur par défaut est y.
Collecte automatique de journaux dans l’agent invité Linux Azure
Depuis la version 2.7+, l’agent invité Linux Azure dispose d’une fonctionnalité permettant de collecter automatiquement certains journaux, puis de les charger. Cette fonctionnalité nécessite actuellement systemd. Elle utilise une nouvelle tranche systemd appelée azure-walinuxagent-logcollector.slice pour gérer les ressources pendant qu’elle effectue la collecte.
L’objectif est de faciliter l’analyse hors connexion. L’agent produit un fichier .zip de certains journaux de diagnostic avant de les charger sur l’hôte de la machine virtuelle. Les équipes d’ingénierie et les professionnels du support technique peuvent récupérer ce fichier pour examiner les problèmes pour le compte du propriétaire de la machine virtuelle. Pour obtenir des informations techniques sur les fichiers collectés par l’agent invité Linux Azure, consultez le fichier azurelinuxagent/common/logcollector_manifests.py dans le dépôt GitHub de l’agent.
Vous pouvez désactiver cette option en modifiant /etc/waagent.conf. Mettez à jour Logs.Collect vers n.
Images Ubuntu pour le cloud
Les images cloud Ubuntu utilisent cloud-init pour effectuer de nombreuses tâches de configuration qui seraient autrement gérées par l’agent de machine virtuelle Linux Azure. Les différences suivantes s’appliquent :
Provisioning.Enabledest par défaut défini surndans les images cloud Ubuntu qui utilisent cloud-init pour effectuer des tâches de provisionnement.Les paramètres de configuration suivants n’ont aucun effet sur les images cloud Ubuntu utilisant Cloud-init pour gérer le disque de ressources et l’espace d’échange :
ResourceDisk.FormatResourceDisk.FilesystemResourceDisk.MountPointResourceDisk.EnableSwapResourceDisk.SwapSizeMB
Pour configurer le point de montage du disque de ressources et l’espace d’échange sur les images cloud Ubuntu durant le provisionnement, consultez les ressources suivantes :