Förstå och använda Azure Linux-agenten

Den Microsoft Azure Linux-agenten (waagent) hanterar Linux & FreeBSD-etablering och VM-interaktion med Azure Fabric-kontrollanten. Förutom att Linux-agenten tillhandahåller etableringsfunktioner ger Azure även möjlighet att använda cloud-init för vissa Linux-operativsystem. Linux-agenten tillhandahåller följande funktioner för Linux- och FreeBSD IaaS-distributioner:

Anteckning

Mer information finns i README.

  • Avbildningsetablering

    • Skapa ett användarkonto
    • Konfigurera SSH-autentiseringstyper
    • Distribution av offentliga SSH-nycklar och nyckelpar
    • Ange värdnamnet
    • Publicera värdnamnet till plattformens DNS
    • Rapportera SSH-värdnyckelns fingeravtryck till plattformen
    • Hantering av resursdiskar
    • Formatera och montera resursdisken
    • Konfigurera växlingsutrymme
  • Nätverk

    • Hanterar vägar för att förbättra kompatibiliteten med DHCP-plattformsservrar
    • Säkerställer nätverksgränssnittets stabilitet
  • Kernel

    • Konfigurerar virtuell NUMA (inaktivera för kernel <2.6.37)
    • Använder Hyper-V-entropin för /dev/random
    • Konfigurerar SCSI-timeouter för rotenheten (som kan vara fjärransluten)
  • Diagnostik

    • Omdirigering av konsolen till serieporten
  • SCVMM-distributioner

    • Identifierar och startar VMM-agenten för Linux när den körs i en System Center Virtual Machine Manager 2012 R2-miljö
  • VM-tillägg

    • Mata in komponent som skapats av Microsoft och partner i virtuella Linux-datorer (IaaS) för att aktivera automatisering av programvara och konfiguration
    • Referensimplementering av VM-tillägg på https://github.com/Azure/azure-linux-extensions

Kommunikation

Informationsflödet från plattformen till agenten sker via två kanaler:

  • En dvd för starttid för IaaS-distributioner. Den här DVD-skivan innehåller en OVF-kompatibel konfigurationsfil som innehåller all annan etableringsinformation än de faktiska SSH-nyckelparen.
  • En TCP-slutpunkt som exponerar ett REST-API som används för att hämta distributions- och topologikonfiguration.

Krav

Följande system har testats och är kända för att fungera med Azure Linux-agenten:

Anteckning

Den här listan kan skilja sig från den officiella listan över distributioner som stöds.

  • CoreOS
  • CentOS 6.3+
  • Red Hat Enterprise Linux 6.7+
  • Debian 7.0+
  • Ubuntu 12.04+
  • openSUSE 12.3+
  • SLES 11 SP3+
  • Oracle Linux 6.4+

Andra system som stöds:

  • FreeBSD 10+ (Azure Linux Agent v2.0.10+)

Linux-agenten är beroende av vissa systempaket för att fungera korrekt:

  • Python 2.6+
  • OpenSSL 1.0+
  • OpenSSH 5.3+
  • Filsystemsverktyg: sfdisk, fdisk, mkfs, parted
  • Lösenordsverktyg: chpasswd, sudo
  • Textbearbetningsverktyg: sed, grep
  • Nätverksverktyg: ip-route
  • Kernelstöd för montering av UDF-filsystem.

Kontrollera att den virtuella datorn har åtkomst till IP-adressen 168.63.129.16. Mer information finns i Vad är IP-adress 168.63.129.16.

Installation

Installation med en RPM eller ett DEB-paket från distributionens paketlagringsplats är den bästa metoden för att installera och uppgradera Azure Linux-agenten. Alla godkända distributionsleverantörer integrerar Azure Linux-agentpaketet i sina avbildningar och lagringsplatser.

I dokumentationen på Lagringsplatsen för Azure Linux-agenten på GitHub finns avancerade installationsalternativ, till exempel installation från källa eller till anpassade platser eller prefix.

Command-Line alternativ

Flaggor

  • verbose: Öka detaljnivå för angivet kommando
  • force: Hoppa över interaktiv bekräftelse för vissa kommandon

Kommandon

  • hjälp: Visar de kommandon och flaggor som stöds.

  • deprovision: Försök att rensa systemet och göra det lämpligt för ometablering. Följande åtgärd tar bort:

    • Alla SSH-värdnycklar (om Provisioning.RegenerateSshHostKeyPair är "y" i konfigurationsfilen)
    • Namnserverkonfiguration i /etc/resolv.conf
    • Rotlösenord från /etc/shadow (om Provisioning.DeleteRootPassword är "y" i konfigurationsfilen)
    • Cachelagrade DHCP-klientlån
    • Återställer värdnamnet till localhost.localdomain

Varning

Avetablering garanterar inte att avbildningen rensas från all känslig information och är lämplig för omdistribution.

  • deprovision+user: Utför allt i -deprovision (ovan) och tar även bort det senast etablerade användarkontot (hämtat från /var/lib/waagent) och associerade data. Den här parametern är när du avetablerar en avbildning som tidigare etablerades i Azure så att den kan avbildas och återanvändas.
  • version: Visar versionen av waagent
  • serialconsole: Konfigurerar GRUB för att markera ttyS0 (den första serieporten) som startkonsolen. Detta säkerställer att kernel-startloggar skickas till serieporten och görs tillgängliga för felsökning.
  • daemon: Kör waagent som en daemon för att hantera interaktion med plattformen. Det här argumentet anges till waagent i init-skriptet waagent.
  • start: Kör waagent som en bakgrundsprocess

Konfiguration

En konfigurationsfil (/etc/waagent.conf) styr åtgärderna för waagent. Följande visar en exempelkonfigurationsfil:

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

Följande olika konfigurationsalternativ beskrivs. Konfigurationsalternativen är av tre typer. Boolesk, Sträng eller Heltal. De booleska konfigurationsalternativen kan anges som "y" eller "n". Det särskilda nyckelordet "None" kan användas för vissa konfigurationsposter av strängtyp som följande information:

Provisioning.Enabled:

Type: Boolean  
Default: y

På så sätt kan användaren aktivera eller inaktivera etableringsfunktionen i agenten. Giltiga värden är "y" eller "n". Om etableringen är inaktiverad bevaras SSH-värden och användarnycklarna i avbildningen och alla konfigurationer som anges i Azure-etablerings-API:et ignoreras.

Anteckning

Parametern Provisioning.Enabled använder som standard "n" på Ubuntu Cloud Images som använder cloud-init för etablering.

Provisioning.DeleteRootPassword:

Type: Boolean  
Default: n

Om det anges raderas rotlösenordet i /etc/shadow-filen under etableringsprocessen.

Provisioning.RegenerateSshHostKeyPair:

Type: Boolean  
Default: y

Om detta anges tas alla SSH-värdnyckelpar (ecdsa, dsa och rsa) bort under etableringsprocessen från /etc/ssh/. Och ett enda nytt nyckelpar genereras.

Krypteringstypen för det nya nyckelparet kan konfigureras av posten Provisioning.SshHostKeyPairType. Vissa distributioner återskapar SSH-nyckelpar för eventuella krypteringstyper som saknas när SSH-daemonen startas om (till exempel vid en omstart).

Provisioning.SshHostKeyPairType:

Type: String  
Default: rsa

Detta kan anges till en krypteringsalgoritmtyp som stöds av SSH-daemonen på den virtuella datorn. De värden som vanligtvis stöds är "rsa", "dsa" och "ecdsa". "putty.exe" i Windows stöder inte "ecdsa". Så om du tänker använda putty.exe i Windows för att ansluta till en Linux-distribution använder du "rsa" eller "dsa".

Provisioning.MonitorHostName:

Type: Boolean  
Default: y

Om det här anges övervakar waagent den virtuella Linux-datorn efter ändringar i värdnamnet (som returneras av kommandot "värdnamn" ) och uppdaterar automatiskt nätverkskonfigurationen i avbildningen för att återspegla ändringen. För att push-överföra namnändringen till DNS-servrarna startas nätverken om på den virtuella datorn. Detta resulterar i en kort förlust av Internetanslutning.

Provisioning.DecodeCustomData

Type: Boolean  
Default: n

Om detta anges avkodar waagent CustomData från Base64.

Provisioning.ExecuteCustomData

Type: Boolean  
Default: n

Om detta anges kör waagent CustomData efter etablering.

Provisioning.AllowResetSysUser

Type: Boolean
Default: n

Med det här alternativet kan lösenordet för sys-användaren återställas. standardvärdet är inaktiverat.

Provisioning.PasswordCryptId

Type: String  
Default: 6

Algoritm som används av crypt vid generering av lösenordshash.
1 – MD5
2a - Blåsfisk
5 – SHA-256
6 – SHA-512

Provisioning.PasswordCryptSaltLength

Type: String  
Default: 10

Längd på slumpmässigt salt som används vid generering av lösenordshash.

ResourceDisk.Format:

Type: Boolean  
Default: y

Om den ställs in formateras och monteras resursdisken som tillhandahålls av plattformen av waagent om filsystemtypen som begärs av användaren i "ResourceDisk.Filesystem" är något annat än "ntfs". En enda partition av typen Linux (83) görs tillgänglig på disken. Den här partitionen är inte formaterad om den kan monteras korrekt.

ResourceDisk.Filesystem:

Type: String  
Default: ext4

Detta anger filsystemtypen för resursdisken. De värden som stöds varierar beroende på Linux-distribution. Om strängen är X, så mkfs. X ska finnas på Linux-avbildningen. SLES 11-bilder bör vanligtvis använda "ext3". FreeBSD-avbildningar bör använda "ufs2" här.

ResourceDisk.MountPoint:

Type: String  
Default: /mnt/resource 

Detta anger den sökväg där resursdisken monteras. Resursdisken är en tillfällig disk och kan tömmas när den virtuella datorn avetableras.

ResourceDisk.MountOptions

Type: String  
Default: None

Anger alternativ för diskmontering som ska skickas till kommandot mount -o. Det här är en kommaavgränsad lista med värden, till exempel 'nodev,nosuid'. Mer information finns i mount(8).

ResourceDisk.EnableSwap:

Type: Boolean  
Default: n

Om detta anges skapas en växlingsfil (/swapfile) på resursdisken och läggs till i systemets växlingsutrymme.

ResourceDisk.SwapSizeMB:

Type: Integer  
Default: 0

Storleken på växlingsfilen i megabyte.

Logs.Verbose:

Type: Boolean  
Default: n

Om den anges ökas loggveroaliteten. Waagent loggar till /var/log/waagent.log och använder systemets logrotate-funktioner för att rotera loggar.

Os. AktiveraRDMA

Type: Boolean  
Default: n

Om detta anges försöker agenten installera och sedan läsa in en RDMA-kerneldrivrutin som matchar versionen av den inbyggda programvaran på den underliggande maskinvaran.

Os. RootDeviceScsiTimeout:

Type: Integer  
Default: 300

Den här inställningen konfigurerar SCSI-timeouten i sekunder på OS-disken och dataenheterna. Om det inte anges används standardinställningarna för systemet.

Os. OpensslPath:

Type: String  
Default: None

Den här inställningen kan användas för att ange en alternativ sökväg för opensl-binärfilen som ska användas för kryptografiska åtgärder.

HttpProxy.Host, HttpProxy.Port

Type: String  
Default: None

Om detta anges använder agenten den här proxyservern för att få åtkomst till Internet.

AutoUpdate.Enabled

Type: Boolean
Default: y

Aktivera eller inaktivera automatisk uppdatering för bearbetning av måltillstånd; standard är aktiverat.

Automatisk logginsamling för Linux-gästagent

Från och med version 2.7+ har Azure Linux-gästagenten en funktion för att automatiskt samla in vissa loggar och ladda upp dem. Den här funktionen kräver för närvarande systembaserad och använder en ny systemsektor med namnet azure-walinuxagent-logcollector.slice för att hantera resurser när samlingen utförs. Logginsamlarens mål är att underlätta offlineanalys och skapar därför en ZIP-fil med vissa diagnostikloggar innan de laddas upp till den virtuella datorns värd. ZIP-filen kan sedan hämtas av teknikteam och supportpersonal för att undersöka problem på den virtuella datorns ägares beskydd. Mer teknisk information om de filer som samlas in av gästagenten finns i filen azurelinuxagent/common/logcollector_manifests.py på agentens GitHub-lagringsplats.

Detta kan inaktiveras genom att uppdatera /etc/waagent.confLogs.Collect till n

Ubuntu Cloud Images

Ubuntu Cloud Images använder cloud-init för att utföra många konfigurationsuppgifter som annars skulle hanteras av Azure Linux-agenten. Följande skillnader gäller:

  • Provisioning.Enabled använder som standard "n" på Ubuntu Cloud Images som använder cloud-init för att utföra etableringsuppgifter.

  • Följande konfigurationsparametrar har ingen effekt på Ubuntu Cloud Images som använder cloud-init för att hantera resursdisken och växlingsutrymmet:

    • ResourceDisk.Format
    • ResourceDisk.Filesystem
    • ResourceDisk.MountPoint
    • ResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMB
  • Mer information finns i följande resurser för att konfigurera resursdiskens monteringspunkt och växla utrymme på Ubuntu Cloud Images under etableringen: