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

Den Microsoft Azure Linux-agenten (waagent) hanterar Linux & FreeBSD-etablering och VM-interaktion med Azure Fabric Controller. Förutom att Linux-agenten tillhandahåller etableringsfunktioner tillhandahåller Azure även alternativet 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 fingeravtryck för SSH-värdnyckel till plattformen
    • Resursdiskhantering
    • Formatera och montera resursdisken
    • Konfigurera växlingsutrymme
  • Nätverk

    • Hanterar vägar för att förbättra kompatibiliteten med plattformens DHCP-servrar
    • Säkerställer stabiliteten för nätverksgränssnittsnamnet
  • Kernel

    • Konfigurerar virtuell NUMA (inaktivera för <2.6.37 kernel)
    • Förbrukar Hyper-V-enpati 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 komponenten som har redigerats av Microsoft och partner i en virtuell Linux-dator (IaaS) för att möjliggöra automatisering av programvara och konfiguration
    • Referensimplementering för VM-tillägg på https://github.com/Azure/azure-linux-extensions

Kommunikation

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

  • En starttidskopplad DVD för IaaS-distributioner. Den här DVD:n innehåller en OVF-kompatibel konfigurationsfil som innehåller all annan etableringsinformation än de faktiska SSH-nyckelparen.
  • En TCP-slutpunkt exponerar en REST API används för att hämta konfiguration av distribution och topologi.

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
  • Kernel-stö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 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 i 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 ordagrann angivet kommando
  • force: Hoppa över interaktiv bekräftelse för vissa kommandon

Kommandon

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

  • avetablering: 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)
    • Nameserver-konfiguration 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 lämpar sig för omdistribution.

  • avetablera+användare: Utför allt i -avetablera (ovan) och tar även bort det senast etablerade användarkontot (hämtas från /var/lib/waagent) och associerade data. Den här parametern är när du avetabler 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 startkonsol. Detta säkerställer att kernelstartloggar 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 för waagent i waagent init-skriptet.
  • 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 strängtypskonfigurationsposter som följande information:

Provisioning.Enabled:

Type: Boolean  
Default: y

Detta gör att användaren kan 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 all konfiguration som anges i Azure-etablerings-API:et ignoreras.

Anteckning

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

Provisioning.DeleteRootPassword:

Type: Boolean  
Default: n

Om detta 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 med posten Provisioning.SshHostKeyPairType. Vissa distributioner skapar om SSH-nyckelpar för alla 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" på Windows stöder inte "ecdsa". Så om du planerar att använda putty.exe på Windows för att ansluta till en Linux-distribution använder du "rsa" eller "dsa".

Provisioning.MonitorHostName:

Type: Boolean  
Default: y

Om inställningen är inställd övervakar waagent den virtuella Linux-datorn efter värdnamnsändringar (som returneras av kommandot "hostname") och uppdaterar automatiskt nätverkskonfigurationen i avbildningen för att återspegla ändringen. Nätverk startas om på den virtuella datorn för att skicka namnändringen till DNS-servrarna. Detta resulterar i 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 etableringen.

Provisioning.AllowResetSysUser

Type: Boolean
Default: n

Med det här alternativet kan sys-användarens lösenord återställas. standardvärdet är inaktiverat.

Provisioning.PasswordCryptId

Type: String  
Default: 6

Algoritm som används av crypt när lösenordshashar genereras.
1 – MD5
2a –Jälviska
5 – SHA-256
6 – SHA-512

Provisioning.PasswordCryptSaltLength

Type: String  
Default: 10

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

ResourceDisk.Format:

Type: Boolean  
Default: y

Om den ställs in formateras och monteras resursdisken som tillhandahålls av plattformen av waagent om den filsystemtyp som begärdes 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. Värdena som stöds varierar beroende på Linux-distribution. Om strängen är X, så mkfs. X ska finnas på Linux-avbildningen. SLES 11-avbildningar bör normalt använda "ext3". FreeBSD-avbildningar bör använda "ufs2" här.

ResourceDisk.MountPoint:

Type: String  
Default: /mnt/resource 

Detta anger sökvägen som resursdisken monteras på. Resursdisken är en tillfällig disk och kan tömmas när den virtuella datorn avetableeras.

ResourceDisk.MountOptions

Type: String  
Default: None

Anger vilka 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". Se montering(8) för mer information.

ResourceDisk.EnableSwap:

Type: Boolean  
Default: n

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

ResourceDisk.SwapSizeMB:

Type: Integer  
Default: 0

Växlingsfilens storlek i megabyte.

Logs.Verbose:

Type: Boolean  
Default: n

Om detta anges förstärk loggens verbositet. Waagent loggar till /var/log/waagent.log och använder systemets logrotate-funktioner för att rotera loggar.

OS. EnableRDMA

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-tidsgränsen i sekunder på OS-disken och dataenheterna. Om detta inte anges används systemets standardvärden.

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 openssl-binärfil 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; standardvärdet är aktiverat.

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 resursens diskmonteringspunkt och byta utrymme på Ubuntu Cloud Images under etableringen: