Overzicht van Azure Linux VM Agent

De Azure Linux VM Agent (waagent) beheert linux- en FreeBSD-inrichting, samen met de interactie van virtuele machines (VM) met de Azure-infrastructuurcontroller. Naast de Linux-agent die inrichtingsfunctionaliteit biedt, biedt Azure de mogelijkheid om cloud-init te gebruiken voor sommige Linux-besturingssystemen.

Belangrijk

Ga naar aka.ms/linuxagentfipssupport voor de nieuwste ondersteuning voor FIPS 140-3 op de VM-gastagent en -extensies.

De Linux-agent biedt de volgende functionaliteit voor implementaties van Linux en FreeBSD Azure Virtuele Machines. Raadpleeg voor meer informatie de README-bestand van de Azure Linux VM Agent op GitHub.

Opmerking

Probeer VM-hulp voor snellere diagnostische gegevens. U wordt aangeraden VM-hulp uit te voeren voor Windows of VM-hulp voor Linux. Met deze diagnostische hulpprogramma's op basis van scripts kunt u veelvoorkomende problemen identificeren die van invloed zijn op de Azure VM-gastagent en de algehele VM-status.

Als u prestatieproblemen ondervindt met virtuele machines, voert u deze hulpprogramma's uit voordat u contact op neemt met de ondersteuning.

Afbeeldingsvoorziening

  • Hiermee maakt u een gebruikersaccount.
  • Hiermee configureert u SSH-verificatietypen.
  • Hiermee worden openbare SSH-sleutels (Secure Shell) en sleutelparen geïmplementeerd.
  • Hiermee stelt u de hostnaam in.
  • Hiermee publiceert u de hostnaam naar het DNS (Platform Domain Name System).
  • Rapporteert de vingerafdruk van de SSH-hostsleutel aan het platform.
  • Beheert de resource schijf.
  • De resourceschijf wordt geformatteerd en geplaatst.
  • Hiermee configureert u wisselruimte.

Netwerken

  • Beheert routes om de compatibiliteit met DHCP-platformservers te verbeteren.
  • Zorgt voor de stabiliteit van de netwerkinterfacenaam.

Kernel

  • Hiermee configureert u virtuele NUMA (uitgeschakeld voor kernel 2.6.37).
  • Verbruikt Hyper-V entropie voor /dev/random.
  • Hiermee configureert u SCSI-time-outs voor het hoofdapparaat. Dit kan extern zijn.

Diagnostiek

  • Zorgt voor consoleomleiding naar de seriële poort.

System Center Virtual Machine Manager-implementaties

  • Detecteert en bootstrapt de Virtual Machine Manager-agent voor Linux wanneer deze wordt uitgevoerd in een System Center Virtual Machine Manager 2012 R2-omgeving.

VM-extensie

  • Injecteert onderdelen die door Microsoft en partners zijn gemaakt in Linux-VM's om software- en configuratieautomatisering mogelijk te maken.

U vindt een referentie-implementatie van de VM-extensie op GitHub.

Communicatie

Informatiestroom van het platform naar de agent vindt plaats via twee kanalen:

  • Een bij het opstarten gekoppelde dvd voor VM-implementaties. Deze dvd bevat een OVF-compatibel configuratiebestand (Open Virtualization Format) dat alle inrichtingsgegevens bevat die niet de SSH-sleutelparen zijn.
  • Een TCP-eindpunt dat een REST API beschikbaar maakt die wordt gebruikt om implementatie- en topologieconfiguratie op te halen.

Requirements

Testen bevestigt dat de volgende systemen werken met de Azure Linux VM-agent.

Opmerking

Deze lijst kan afwijken van de goedgekeurde Linux-distributies in Azure.

Uitgever Distributie x64 ARM64
Alma Linux Community Alma Linux 8.x, 9.x 8.x, 9.x
Credativ Debian 10.x 11.x
Kinvolk Flatcar Linux 3374.2.x 3374.2.x
Microsoft Azure Linux 2.x 2.x
openSUSE-project openSUSE 12.3 niet ondersteund
Oracle Oracle Linux 6.4, 7.x, 8.x niet ondersteund
Red Hat Red Hat Enterprise Linux 6.7, 7.x, 8.x, 9.x, 10.x 8.6, 9.0, 10.x
CIQ Rocky Linux 9.x 9.x
SUSE SLES 12.x, 15.x 15.x SP4
Standaard Ubuntu (LTS-versies) 18.04, 20.04, 22.04, 24.04, 26.04 20.04, 22.04, 24.04, 26.04

Andere ondersteunde systemen:

  • De agent werkt op meer systemen dan de systemen die in de documentatie worden vermeld. We testen of bieden echter geen ondersteuning voor distributies die niet op de goedgekeurde lijst staan. In het bijzonder wordt FreeBSD niet goedgekeurd. Je kunt FreeBSD 8 proberen. Als u problemen ondervindt, kunt u een probleem openen in onze GitHub-opslagplaats en kunnen we u mogelijk helpen.

De Linux-agent is afhankelijk van deze systeempakketten om goed te functioneren:

  • Python 2.6 of hoger
  • OpenSSL 1.0 of nieuwer
  • OpenSSH 5.3 of nieuwer
  • Bestandssysteemhulpprogramma's: sfdisk, fdisk, mkfs, parted
  • Hulpprogramma's voor wachtwoorden: chpasswd, sudo
  • Hulpmiddelen voor tekstverwerking: sed, grep
  • Netwerkhulpprogramma's: ip-route
  • Kernelondersteuning voor het koppelen van UDF-bestandssystemen

Zorg ervoor dat uw VIRTUELE machine toegang heeft tot IP-adres 168.63.129.16. Zie Wat is IP-adres 168.63.129.16? voor meer informatie.

Installation

De ondersteunde methode voor het installeren en upgraden van de Azure Linux VM-agent maakt gebruik van een RPM of een DEB-pakket vanuit de pakketopslagplaats van uw distributie. Alle goedgekeurde distributieproviders integreren het Azure Linux VM Agent-pakket in hun installatiekopieën en opslagplaatsen. Sommige Linux-distributies kunnen de functie Automatisch bijwerken van azure Linux-VM-agent uitschakelen. Sommige opslagplaatsen bevatten mogelijk ook oudere versies. Oudere versies kunnen problemen hebben met moderne extensies, dus we raden u aan om de nieuwste stabiele versie te installeren.

U moet ervoor zorgen dat de Azure Linux VM-agent correct wordt bijgewerkt. Het is raadzaam dat u de optie AutoUpdate.Enabled=Y in het /etc/waagent.conf bestand hebt, omdat het toevoegen van opmerkingen bij deze optie ook standaardwaarden oplevert. Het hebben van AutoUpdate.Enabled=N voorkomt dat de Azure Linux VM-agent goed kan worden bijgewerkt.

Zie Microsoft Azure Linux VM Agent voor geavanceerde installatieopties, zoals installeren vanaf een bron of aangepaste locaties of voorvoegsels. In andere dan deze scenario's wordt geen ondersteuning geboden voor het upgraden of opnieuw installeren van de Azure Linux VM-agent vanuit de bron.

Opdrachtregelopties

Vlaggen

  • verbose: vergroot de uitgebreidheid van de opgegeven opdracht.
  • force: hiermee wordt interactieve bevestiging voor sommige opdrachten overgeslagen.

Opdrachten

  • help: geeft een overzicht van de ondersteunde opdrachten en vlaggen.

  • deprovision: Probeert het systeem schoon te maken en het geschikt te maken voor herinrichting. Met de bewerking wordt het volgende verwijderd:

    • Alle SSH-hostsleutels, als Provisioning.RegenerateSshHostKeyPairy deze zich in het configuratiebestand bevindt.
    • Nameserver configuratie in /etc/resolv.conf.
    • Het rootwachtwoord van /etc/shadow, indien Provisioning.DeleteRootPasswordy is in het configuratiebestand.
    • In cache opgeslagen DHCP-clientleases.

    De client stelt de hostnaam opnieuw in op localhost.localdomain.

    Waarschuwing

    Het deprovisioning garandeert niet dat de afbeelding van alle gevoelige informatie is gewist en geschikt is voor herdistributie.

  • deprovision+user: Voert alles in deprovision en verwijdert het laatst ingerichte gebruikersaccount (verkregen uit /var/lib/waagent) en de bijbehorende gegevens. Gebruik deze parameter wanneer u een image die eerder op Azure was ingericht, deprovisioneert zodat deze kan worden vastgelegd en hergebruikt.

  • version: Geeft de versie van waagent weer.

  • serialconsole: hiermee configureert GRUB om ttyS0, de eerste seriële poort, als de opstartconsole te markeren. Deze optie zorgt ervoor dat kernelopstartlogboeken naar de seriële poort worden verzonden en beschikbaar worden gesteld voor foutopsporing.

  • daemon: Voert waagent uit als een daemon om interactie met het platform te beheren. Dit argument wordt opgegeven aan de waagent in het waagent init-script.

  • start: Voert waagent uit als achtergrondproces.

Configuratie

Het configuratiebestand /etc/waagent.conf bepaalt de acties van waagent. Hier volgt een voorbeeld van een configuratiebestand:

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

Configuratieopties zijn van drie typen: Boolean, Stringof Integer. U kunt de Boolean configuratieopties opgeven als y of n. Het speciale trefwoord None kan worden gebruikt voor sommige configuratie-ingangen van tekenreeksen.

Voorziening.Ingeschakeld

Type: Boolean
Default: y

Met deze optie kan de gebruiker de provisioning-functionaliteit in- of uitschakelen in de agent. Geldige waarden zijn y en n. Als inrichten is uitgeschakeld, blijven de SSH-host- en gebruikerssleutels in de installatiekopie behouden en wordt de configuratie in de Azure-inrichtings-API genegeerd.

Opmerking

De parameter Provisioning.Enabled is standaard ingesteld op n in Ubuntu Cloud-installatiekopieën die gebruikmaken van cloud-init voor inrichting.

Provisioning.VerwijderRootWachtwoord

Type: Boolean
Default: n

Als de waarde y is, wist de agent het root-wachtwoord in het /etc/shadow tijdens het inrichtingsproces.

Provisioning.RegenerateSshHostKeyPair

Type: Boolean
Default: y

Als de waarde is y, verwijdert de agent alle SSH-hostsleutelparen uit /etc/ssh/ tijdens het inrichtingsproces, inclusief ECDSA, DSA en RSA. De agent genereert één nieuw sleutelpaar.

Configureer het versleutelingstype voor het nieuwe sleutelpaar met behulp van de Provisioning.SshHostKeyPairType vermelding. Sommige distributies maken SSH-sleutelparen opnieuw voor ontbrekende versleutelingstypen wanneer de SSH-daemon opnieuw wordt opgestart. Een voorbeeld is na het opnieuw opstarten.

Provisioning.SshHostKeyPairType

Type: String
Default: rsa

U kunt deze optie instellen op een type versleutelingsalgoritmen dat door de SSH-daemon op de VIRTUELE machine wordt ondersteund. De doorgaans ondersteunde waarden zijn rsa, dsaen ecdsa. Het putty.exe-bestand in Windows biedt geen ondersteuning voor ecdsa. Als u van plan bent putty.exe in Windows te gebruiken om verbinding te maken met een Linux-implementatie, gebruikt rsa of dsa.

Provisioning.MonitorHostName

Type: Boolean
Default: y

Als de waarde is y, bewaakt waagent de Linux-VM voor een hostnaamwijziging, zoals geretourneerd door de hostname opdracht. Waagent werkt vervolgens automatisch de netwerkconfiguratie in de image bij om de wijziging door te voeren. Als u de naamwijziging naar de DNS-servers wilt pushen, wordt het netwerk opnieuw opgestart op de virtuele machine. Deze herstart leidt tot kort verlies van internetverbinding.

Provisioning.DecodeCustomData

Type: Boolean
Default: n

Als de waarde y is, decodeert waagent CustomData van Base64.

Provisioning.ExecuteCustomData

Type: Boolean
Default: n

Als de waarde y is, voert waagent CustomData uit na de voorziening.

Provisioning.AllowResetSysUser

Type: Boolean
Default: n

Met deze optie kan het wachtwoord voor de systeemgebruiker opnieuw worden ingesteld. Deze is standaard uitgeschakeld.

Provisioning.PasswordCryptId

Type: String
Default: 6

Met deze optie geeft u het algoritme op dat crypt wordt gebruikt bij het genereren van een wachtwoord-hash. Geldige waarden zijn:

  • 1: MD5
  • 2a:Blowfish
  • 5: SHA-256
  • 6: SHA-512

Provisioning.PasswordCryptSaltLength

Type: String
Default: 10

Met deze optie geeft u de lengte aan van willekeurige zout die wordt gebruikt bij het genereren van een wachtwoord-hash.

ResourceDisk.Format

Type: Boolean
Default: y

Als de waarde y is, formatteert en koppelt waagent de resourceschijf die het platform biedt, tenzij het bestandssysteemtype dat de gebruiker in ResourceDisk.Filesystem heeft aangevraagd ntfs is. De agent maakt één Linux-partitie (ID 83) beschikbaar op de schijf. Deze partitie blijkt niet geformatteerd te zijn wanneer deze succesvol kan worden gekoppeld.

ResourceDisk.Filesystem

Type: String
Default: ext4

Met deze optie geeft u het bestandssysteemtype voor de resourceschijf op. Ondersteunde waarden variëren per Linux-distributie. Als de tekenreeks X is, moet mkfs.X aanwezig zijn op het Linux-image.

ResourceDisk.MountPoint

Type: String
Default: /mnt/resource

Met deze optie geeft u het pad op waarop de resourceschijf is gekoppeld. De resourceschijf is een tijdelijke schijf en kan worden geleegd wanneer de virtuele machine gedeprovisioneerd wordt.

ResourceDisk.MountOptions

Type: String
Default: None

Met deze optie worden opties voor schijfkoppeling opgegeven die moeten worden doorgegeven aan de mount -o opdracht. De waarde is een door komma's gescheiden lijst met waarden, bijvoorbeeld nodev,nosuid. Zie de mount(8) handmatige pagina voor meer informatie.

ResourceDisk.EnableSwap

Type: Boolean
Default: n

Als u deze optie instelt, maakt de agent een wisselbestand (/swapfile) op de resourceschijf en voegt deze toe aan de wisselruimte van het systeem.

ResourceDisk.SwapSizeMB

Type: Integer
Default: 0

Met deze optie geeft u de grootte van het wisselbestand in megabytes op.

Logs.Verbose

Type: Boolean
Default: n

Als u deze optie instelt, wordt het logdetailniveau verhoogd. Waagent logt naar /var/log/waagent.log en maakt gebruik van de systeemfunctionaliteit logrotate om logbestanden te roteren.

OS.EnableRDMA

Type: Boolean
Default: n

Als u deze optie instelt, probeert de agent een RDMA-kernelstuurprogramma te installeren en vervolgens te laden dat overeenkomt met de versie van de firmware op de onderliggende hardware.

OS.RootDeviceScsiTimeout

Type: Integer
Default: 300

Met deze optie configureert u de SCSI-time-out in seconden op de besturingssysteemschijf en gegevensstations. Als deze niet is ingesteld, worden de standaardinstellingen van het systeem gebruikt.

OS.OpensslPath

Type: String
Default: None

U kunt deze optie gebruiken om een alternatief pad op te geven voor het binaire bestand openssl dat moet worden gebruikt voor cryptografische bewerkingen.

HttpProxy.Host, HttpProxy.Port

Type: String
Default: None

Als u deze optie instelt, gebruikt de agent deze proxyserver voor toegang tot internet.

AutoUpdate.Ingeschakeld

Type: Boolean
Default: y

Automatisch bijwerken in- of uitschakelen voor doelstatusverwerking. De standaardwaarde is y.

Automatische logboekverzameling in de Azure Linux-gastagent

Vanaf versie 2.7+ heeft de Azure Linux-gastagent een functie om automatisch enkele logboeken te verzamelen en te uploaden. Deze functie vereist momenteel systemd. Er wordt een nieuw systemd segment, genaamd azure-walinuxagent-logcollector.slice, gebruikt om resources te beheren terwijl de verzameling wordt uitgevoerd.

Het doel is om offlineanalyse te vergemakkelijken. De agent produceert een .zip bestand met enkele diagnostische logboeken voordat deze worden geüpload naar de host van de virtuele machine. Technische teams en ondersteuningsmedewerkers kunnen het bestand ophalen om problemen voor de eigenaar van de VM te onderzoeken. Zie het bestand azurelinuxagent/common/logcollector_manifests.py in de GitHub-opslagplaats van de agent voor technische informatie over de bestanden die de Azure Linux-gastagent verzamelt.

U kunt deze optie uitschakelen door /etc/waagent.conf te bewerken. Bijwerken Logs.Collect naar n.

Ubuntu-cloudinstallatiekopieën

Ubuntu-cloudinstallatiekopieën maken gebruik van cloud-init om veel configuratietaken uit te voeren die de Azure Linux VM-agent anders zou beheren. De volgende verschillen zijn van toepassing:

  • Provisioning.Enabled is standaard ingesteld n op Ubuntu Cloud-installatiekopieën die gebruikmaken van cloud-init om inrichtingstaken uit te voeren.

  • De volgende configuratieparameters hebben geen invloed op Ubuntu Cloud-installatiekopieën die gebruikmaken van cloud-init voor het beheren van de resourceschijf en wisselruimte:

    • ResourceDisk.Format
    • ResourceDisk.Filesystem
    • ResourceDisk.MountPoint
    • ResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMB

Als u het mountpoint voor de resourceschijf wilt configureren en wisselruimte wilt instellen voor Ubuntu Cloud Afbeeldingen tijdens het inrichten, raadpleegt u de volgende resources: