Azure Linux-VM-Agent – Übersicht
Der Microsoft Azure Linux-VM-Agent (waagent) verwaltet die Bereitstellung von Linux und FreeBSD sowie die VM-Interaktion mit dem Azure Fabric-Controller. Zusätzlich zu den Bereitstellungsfunktionen des Linux-Agents bietet Azure die Möglichkeit zur Verwendung von cloud-init für einige Linux-Betriebssysteme.
Der Linux-Agent stellt die folgenden Funktionen für Linux- und FreeBSD-basierte Azure Virtual Machines-Bereitstellungen zur Verfügung. Weitere Informationen finden Sie in der Infodatei des Azure Linux-VM-Agents auf GitHub.
Imagebereitstellung
- Erstellt ein Benutzerkonto.
- Konfiguriert SSH-Authentifizierungstypen.
- Stellt öffentliche SSH-Schlüssel und -Schlüsselpaare bereit.
- Legt den Hostnamen fest
- Veröffentlicht den Hostnamen beim Plattform-DNS
- Meldet den SSH-Hostschlüssel-Fingerabdruck an die Plattform
- Verwaltet den Ressourcendatenträger
- Formatiert und stellt den Ressourcendatenträger bereit
- Konfiguriert den Auslagerungsbereich
Netzwerk
- Verwaltet von Routen zur Verbesserung der Kompatibilität mit Plattform-DHCP-Servern
- Stellt die Stabilität des Netzwerkschnittstellennamens sicher
Kernel
- Konfiguriert einen virtuellen NUMA (für Kernel 2.6.37 deaktiviert.
- Verbraucht Hyper-V-Entropie für /dev/random.
- Konfiguriert SCSI-Timeouts für das Stammgerät, das remote sein kann.
Diagnose
- Stellt Konsolenumleitung an den seriellen Port bereit.
Bereitstellungen von System Center Virtual Machine Manager
- Erkennt und startet (Bootstrapping) den Virtual Machine Manager-Agent für Linux bei Ausführung in einer Umgebung mit System Center Virtual Machine Manager 2012 R2.
VM-Erweiterung
- Fügt von Microsoft und Partnern erstellte Komponenten in Linux-VMs ein, um die Automatisierung der Software und Konfiguration zu ermöglichen
Sie finden eine Referenzimplementierung der VM-Erweiterung auf GitHub.
Kommunikation
Der Informationsfluss von der Plattform zum Agent erfolgt über zwei Kanäle:
- Über eine beim Start angeschlossene DVD für VM-Bereitstellungen. Diese DVD enthält eine OVF-kompatible (Open Virtualization Format) Konfigurationsdatei mit allen Bereitstellungsinformationen mit Ausnahme der SSH-Schlüsselpaare.
- Über einen TCP-Endpunkt, der eine REST-API verfügbar macht, um die Bereitstellungs- und Topologiekonfiguration abzurufen.
Anforderungen
Tests haben bestätigt, dass die folgenden Systeme mit dem Azure Linux-VM-Agent funktionieren.
Hinweis
Diese Liste kann von den unterstützten Linux-Distributionen in Azure abweichen.
Distribution | x64 | ARM64 |
---|---|---|
Alma Linux | 9.x und höher | 9.x und höher |
Debian | 10+ | 11.x+ |
Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
Azure Linux | 2.x | 2.x |
openSUSE | 12.3+ | Nicht unterstützt |
Oracle Linux | 6.4+, 7.x+, 8.x+ | Nicht unterstützt |
Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+ | 8.6+, 9.0+ |
Rocky Linux | 9.x und höher | 9.x und höher |
SLES | 12.x+, 15.x+ | 15.x SP4+ |
Ubuntu (LTS-Releases) | 18.04 und höher, 20.04 und höher, 22.04 und höher, 24.04 und höher | 20.04 und höher, 22.04 und höher, 24.04 und höher |
Wichtig
RHEL/Oracle Linux 6.10 ist die einzige RHEL/OL 6-Version mit erweiterter Lebenszyklusunterstützung, die verfügbar ist. Die erweiterte Wartung endet am 30. Juni 2024.
Andere unterstützte Systeme:
- Der Agent funktioniert auf mehr Systemen als den in der Dokumentation aufgeführten. Wir testen oder bieten jedoch keine Unterstützung für Distributionen, die nicht in der Liste der unterstützten Systeme enthalten sind. Insbesondere FreeBSD wird nicht unterstützt. Der Kunde kann FreeBSD 8 ausprobieren, und wenn Probleme auftreten, kann er ein Problem in unserem GitHub-Repository öffnen, und wir können möglicherweise helfen.
Damit der Linux-Agent richtig funktioniert, benötigt er die folgenden Systempakete:
- Python 2.6+
- OpenSSL 1.0+
- OpenSSH 5.3+
- Hilfsprogramme für das Dateisystem: sfdisk, fdisk, mkfs, parted
- Kennworttools: chpasswd, sudo
- Textverarbeitungstools: sed, grep
- Netzwerktools: ip-route
- Kernel-Unterstützung für die Einbindung von UDF-Dateisystemen
Stellen Sie sicher, dass Ihre VM Zugriff auf die IP-Adresse 168.63.129.16 besitzt. Unter Was ist die IP-Adresse 168.63.129.16? finden Sie weitere Informationen.
Installation
Um den Azure Linux VM Agent zu installieren und zu aktualisieren, können Sie ein RPM- oder DEB-Paket aus dem Paket-Repository Ihrer Distribution verwenden. Das Azure Linux-VM-Agent-Paket wird von allen unterstützten Distributionsanbietern in ihre jeweiligen Images und Repositorys integriert.
Einige Linux-Distributionen deaktivieren möglicherweise die Funktion Azure Linux VM Agent Auto Update und einige der Repositories enthalten möglicherweise auch ältere Versionen, die Probleme mit modernen Erweiterungen haben können. Wir empfehlen daher, die neueste stabile Version zu installieren.
Um sicherzustellen, dass der Azure Linux VM Agent ordnungsgemäß aktualisiert wird, empfehlen wir, die Option AutoUpdate.Enabled=Y
in der Datei /etc/waagent.conf
zu haben oder sie einfach auszukommentieren. AutoUpdate.Enabled=N
ermöglicht keine ordnungsgemäße Aktualisierung des Azure Linux VM Agent.
Erweiterte Installationsoptionen wie die Installation von der Quelle oder an benutzerdefinierten Speicherorten oder Präfixen finden Sie unter Microsoft Azure Linux-VM-Agent. Abgesehen von diesen Szenarien wird ein Upgrade oder eine Neuinstallation des Azure Linux VM Agent aus dem Quellcode weder unterstützt noch empfohlen.
Befehlszeilenoptionen
Flags
verbose
: Erhöht die Ausführlichkeit des angegebenen Befehls.force
: Überspringt die interaktive Bestätigung für einige Befehle.
Befehle
help
: Listet die unterstützten Befehle und Flags auf.deprovision
: Versucht, das System zu bereinigen und für eine erneute Bereitstellung vorzubereiten. Der Vorgang löscht Folgendes:- Alle SSH-Hostschlüssel, sofern
Provisioning.RegenerateSshHostKeyPair
in der Konfigurationsdatei den Werty
aufweist. Nameserver
-Konfiguration in /etc/resolv.conf.- Das root-Kennwort aus /etc/shadow, sofern
Provisioning.DeleteRootPassword
in der Konfigurationsdatei aufy
festgelegt ist. - Zwischengespeicherte DHCP-Clientleases.
Der Client setzt den Hostnamen auf
localhost.localdomain
zurück.Warnung
Die Aufhebung der Bereitstellung garantiert nicht, dass alle vertraulichen Informationen aus dem Image gelöscht werden und das Image für eine weitere Verteilung geeignet ist.
- Alle SSH-Hostschlüssel, sofern
deprovision+user
: Führt alle fürdeprovision
aufgeführten Aktionen aus und löscht darüber hinaus das zuletzt bereitgestellte Benutzerkonto (aus /var/lib/waagent abgerufen) sowie die zugehörigen Daten. Verwenden Sie diesen Parameter, wenn Sie die Bereitstellung eines Images aufheben, das zuvor in Azure bereitgestellt wurde, damit es erfasst und wiederverwendet werden kann.version
: Zeigt die Version von waagent an.serialconsole
: Konfiguriert GRUB so, dass ttyS0 (der erste serielle Port) als Startkonsole markiert wird. Durch diese Option wird sichergestellt, dass Kernelstartprotokolle an den seriellen Port gesendet und für das Debuggen verfügbar gemacht werden.daemon
: Führt waagent als Daemon aus, um die Interaktion mit der Plattform zu verwalten. Dieses Argument wird für waagent im init-Skript (Initialisierungsskript) von waagent angegeben.start
: Führt waagent als Hintergrundprozess aus.
Konfiguration
Die Konfigurationsdatei /etc/waagent.conf steuert die Aktionen von waagent. Hier sehen Sie ein Beispiel für eine Konfigurationsdatei:
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
Konfigurationsoptionen haben drei Typen: Boolean
, String
oder Integer
. Sie können die Boolean
-Konfigurationsoptionen als y
oder n
angeben. Für einige Konfigurationseinträge des Typs „Zeichenfolge“ (string) kann das spezielle Schlüsselwort None
verwendet werden.
Provisioning.Enabled
Type: Boolean
Default: y
Mit dieser Option kann der Benutzer die Bereitstellungsfunktion im Agenten aktivieren oder deaktivieren. Gültige Werte sind y
und n
. Bei deaktivierter Bereitstellung werden die SSH-Host- und -Benutzerschlüssel im Image beibehalten, und die Konfiguration in der Azure-Bereitstellungs-API wird ignoriert.
Hinweis
Der Parameter Provisioning.Enabled
ist für Ubuntu-Cloudimages, die „cloud-init“ für die Bereitstellung verwenden, standardmäßig auf n
festgelegt.
Provisioning.DeleteRootPassword
Type: Boolean
Default: n
Wenn der Wert y
lautet, löscht der Agent das root-Kennwort in der Datei /etc/shadow während des Bereitstellungsprozesses.
Provisioning.RegenerateSshHostKeyPair
Type: Boolean
Default: y
Wenn der Wert y
lautet, löscht der Agent während des Bereitstellungsprozesses alle SSH-Hostschlüsselpaare aus /etc/ssh/, einschließlich ECDSA, DSA und RSA. Der Agent generiert ein einzelnes neues Schlüsselpaar.
Konfigurieren Sie den Verschlüsselungstyp für das neue Schlüsselpaar mithilfe des Eintrags Provisioning.SshHostKeyPairType
. Einige Distributionen erstellen SSH-Schlüsselpaare für alle fehlenden Verschlüsselungstypen neu, wenn der SSH-Daemon neu gestartet wird (z. B. nach einem Systemneustart).
Provisioning.SshHostKeyPairType
Type: String
Default: rsa
Sie können diese Option auf einen Verschlüsselungsalgorithmustyp festlegen, der vom SSH-Daemon auf der VM unterstützt wird. Die typischerweise unterstützten Werte sind rsa
, dsa
und ecdsa
. Die Datei putty.exe unter Windows unterstützt ecdsa
nicht. Wenn Sie beabsichtigen, mithilfe von putty.exe unter Windows eine Verbindung mit einer Linux-Bereitstellung herzustellen, verwenden Sie rsa
oder dsa
.
Provisioning.MonitorHostName
Type: Boolean
Default: y
Wenn der Wert y
lautet, überwacht waagent die Linux-VM auf eine Änderung des Hostnamens, wie vom hostname
-Befehl zurückgegeben. Waagent aktualisiert dann automatisch die Netzwerkkonfiguration im Image, um die Änderung widerzuspiegeln. Um die Namensänderung an die DNS-Server zu pushen, wird die Netzwerkfunktion auf der VM neu gestartet. Durch diesen Neustart wird die Internetverbindung kurz unterbrochen.
Provisioning.DecodeCustomData
Type: Boolean
Default: n
Wenn der Wert y
lautet, decodiert waagent CustomData
aus Base64.
Provisioning.ExecuteCustomData
Type: Boolean
Default: n
Wenn der Wert y
lautet, führt waagent CustomData
nach der Bereitstellung aus.
Provisioning.AllowResetSysUser
Type: Boolean
Default: n
Mit dieser Option kann das Kennwort für den Systembenutzer zurückgesetzt werden. Standardmäßig ist es deaktiviert.
Provisioning.PasswordCryptId
Type: String
Default: 6
Diese Option gibt den Algorithmus an, den crypt
verwendet, wenn ein Kennworthash generiert wird. Gültige Werte sind:
1
: MD52a
: Blowfish5
: SHA-2566
: SHA-512
Provisioning.PasswordCryptSaltLength
Type: String
Default: 10
Diese Option gibt die Länge des zufälligen Saltwerts an, der beim Generieren eines Kennworthashs verwendet wird.
ResourceDisk.Format
Type: Boolean
Default: y
Wenn der Wert y
ist, formatiert waagent den von der Plattform bereitgestellten Ressourcendatenträger und bindet ihn ein, es sei denn, der vom Benutzer in ResourceDisk.Filesystem
angeforderte Dateisystemtyp ist ntfs
. Der Agent stellt eine einzelne Linux-Partition (ID 83) auf dem Datenträger zur Verfügung. Diese Partition wird nicht formatiert, falls sie erfolgreich eingebunden werden kann.
ResourceDisk.Filesystem
Type: String
Default: ext4
Diese Option gibt den Dateisystemtyp für den Ressourcendatenträger an. Die unterstützten Werte sind je nach Linux-Distribution verschieden. Wenn die Zeichenfolge X
ist, sollte mkfs.X
im Linux-Image vorhanden sein.
ResourceDisk.MountPoint
Type: String
Default: /mnt/resource
Diese Option gibt den Pfad an, in dem der Ressourcendatenträger eingebunden wird. Der Ressourcendatenträger ist ein temporärer Datenträger und kann geleert werden, wenn die Bereitstellung der VM aufgehoben wird.
ResourceDisk.MountOptions
Type: String
Default: None
Diese Option gibt die Optionen zum Einbinden des Datenträgers an, die an den Befehl mount -o
übergeben werden sollen. Der Wert ist eine durch Trennzeichen getrennte Liste von Werten, z. B nodev,nosuid
. Weitere Informationen finden Sie auf der Manpage mount(8)
.
ResourceDisk.EnableSwap
Type: Boolean
Default: n
Wenn Sie diese Option festlegen, erstellt der Agent auf dem Ressourcendatenträger eine Auslagerungsdatei (/swapfile) und fügt sie dem Auslagerungsspeicher des Systems hinzu.
ResourceDisk.SwapSizeMB
Type: Integer
Default: 0
Diese Option gibt die Größe der Auslagerungsdatei in MB an.
Logs.Verbose
Type: Boolean
Default: n
Wenn Sie diese Option festlegen, wird die Ausführlichkeit von Protokollen erhöht. Waagent protokolliert in /var/log/waagent.log und nutzt die logrotate
-Funktion des Systems zum Rotieren von Protokollen.
OS.EnableRDMA
Type: Boolean
Default: n
Wenn Sie diese Option festlegen, versucht der Agent, einen passenden RDMA-Kerneltreiber für die Firmwareversion der zugrunde liegenden Hardware zu installieren und anschließend zu laden.
OS.RootDeviceScsiTimeout
Type: Integer
Default: 300
Mit dieser Option wird das SCSI-Timeout in Sekunden auf dem Betriebssystemdatenträger und Datenlaufwerken konfiguriert. Wird kein Wert festgelegt, gelten die Standardwerte des Systems.
OS.OpensslPath
Type: String
Default: None
Mit dieser Option können Sie einen alternativen Pfad für die openssl-Binärdatei zur Verwendung für kryptografische Vorgänge angeben.
HttpProxy.Host, HttpProxy.Port
Type: String
Default: None
Wenn Sie diese Option festlegen, greift der Agent über den angegebenen Proxyserver auf das Internet zu.
AutoUpdate.Enabled
Type: Boolean
Default: y
Aktiviert oder deaktiviert die automatische Aktualisierung für die Verarbeitung des Zielzustands. Standardwert: y
.
Automatische Protokollsammlung im Azure Linux-Gast-Agent
Ab Version 2.7 verfügt der Azure Linux-Gast-Agent über eine Funktion zum automatischen Erfassen und Hochladen einiger Protokolle. Für dieses Feature ist derzeit systemd
erforderlich. Es verwendet ein neues systemd
-Slice namens azure-walinuxagent-logcollector.slice
, um die Ressourcen zu verwalten, während die Sammlung ausgeführt wird.
Der Zweck besteht darin, die Offlineanalyse zu erleichtern. Der Agent erzeugt eine ZIP-Datei mit einigen Diagnoseprotokollen, bevor er sie auf den Host der VM hochlädt. Entwicklungsteams und Supportexperten können die Datei abrufen, um Probleme für den VM-Besitzer zu untersuchen. Technische Informationen zu den vom Gast-Agent gesammelten Dateien finden Sie in der Datei azurelinuxagent/common/logcollector_manifests.py im GitHub-Repository des Agents.
Sie können diese Option deaktivieren, indem Sie /etc/waagent.conf bearbeiten. Aktualisieren Sie Logs.Collect
auf n
.
Ubuntu-Cloud-Images
Ubuntu-Cloudimages verwenden cloud-init, um viele Konfigurationsaufgaben auszuführen, die andernfalls der Azure Linux-VM-Agent verwalten würde. Es liegen folgende Unterschiede vor:
Provisioning.Enabled
ist für Ubuntu-Cloudimages, die für Bereitstellungsaufgaben „cloud-init“ verwenden, standardmäßig aufn
festgelegt.Die folgenden Konfigurationsparameter wirken sich nicht auf Ubuntu-Cloud-Images aus, die Ressourcendatenträger und Auslagerungsbereiche mit Cloud-Init verwalten:
ResourceDisk.Format
ResourceDisk.Filesystem
ResourceDisk.MountPoint
ResourceDisk.EnableSwap
ResourceDisk.SwapSizeMB
Berücksichtigen Sie zum Konfigurieren des Bereitstellungspunkts und des Auslagerungsbereichs für den Ressourcendatenträger von Ubuntu-Cloudimages die folgenden Ressourcen: