Informazioni e uso dell'agente Linux di AzureUnderstanding and using the Azure Linux Agent

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

IntroduzioneIntroduction

L'agente Linux di Microsoft Azure (waagent) gestisce il provisioning di Linux e FreeBSD e l'interazione della macchina virtuale con il controller di infrastruttura di Azure.The Microsoft Azure Linux Agent (waagent) manages Linux & FreeBSD provisioning, and VM interaction with the Azure Fabric Controller. Per le distribuzioni IaaS di Linux e FreeBSD, sono disponibili le funzionalità seguenti:It provides the following functionality for Linux and FreeBSD IaaS deployments:

Nota

Vedere il file LEGGIMI dell'agente Linux di Azure per informazioni dettagliate.See the Azure Linux agent README for additional details.

  • Provisioning dell'immagineImage Provisioning

    • Creazione di un account utenteCreation of a user account
    • Configurazione dei tipi di autenticazione SSHConfiguring SSH authentication types
    • Distribuzione di coppie di chiavi e chiavi pubbliche SSHDeployment of SSH public keys and key pairs
    • Impostazione del nome hostSetting the host name
    • Pubblicazione del nome host nel DNS della piattaformaPublishing the host name to the platform DNS
    • Segnalazione dell'ID digitale della chiave dell'host SSH alla piattaformaReporting SSH host key fingerprint to the platform
    • Gestione del disco risorseResource Disk Management
    • Formattazione e montaggio del disco risorseFormatting and mounting the resource disk
    • Configurazione dell'area di swapConfiguring swap space
  • ReteNetworking

    • Gestisce i percorsi per migliorare la compatibilità con i server DHCP della piattaforma.Manages routes to improve compatibility with platform DHCP servers
    • Garantisce la stabilità del nome dell'interfaccia di reteEnsures the stability of the network interface name
  • KernelKernel

    • Configura un NUMA virtuale (disabilitare per kernel <2.6.37)Configures virtual NUMA (disable for kernel <2.6.37)
    • Usa l'entropia Hyper-V per /dev/randomConsumes Hyper-V entropy for /dev/random
    • Configura i timeout SCSI per il dispositivo radice (che può essere remoto)Configures SCSI timeouts for the root device (which could be remote)
  • DiagnosticaDiagnostics

    • Reindirizzamento della console alla porta serialeConsole redirection to the serial port
  • Distribuzioni SCVMMSCVMM Deployments

    • Rileva e avvia l'agente VMM per Linux durante l'esecuzione in un ambiente System Center Virtual Machine Manager 2012 R2Detects and bootstraps the VMM agent for Linux when running in a System Center Virtual Machine Manager 2012 R2 environment
  • Estensione VMVM Extension

ComunicazioneCommunication

Il flusso di informazioni dalla piattaforma all'agente avviene tramite due canali:The information flow from the platform to the agent occurs via two channels:

  • Un DVD collegato in fase di avvio per le distribuzioni IaaS.A boot-time attached DVD for IaaS deployments. Nel DVD è incluso un file di configurazione conforme a OVF che include tutte le informazioni di provisioning diverse dalle coppie di chiavi SSH effettive.This DVD includes an OVF-compliant configuration file that includes all provisioning information other than the actual SSH keypairs.
  • Un endpoint TCP che espone un'API REST usata per ottenere la configurazione della distribuzione e della topologia.A TCP endpoint exposing a REST API used to obtain deployment and topology configuration.

RequisitiRequirements

I sistemi seguenti sono stati testati e funzionano con l'agente Linux di Azure:The following systems have been tested and are known to work with the Azure Linux Agent:

Nota

È possibile che questo elenco sia diverso da quello ufficiale dei sistemi supportati sulla piattaforma Microsoft Azure, come descritto di seguito: http://support.microsoft.com/kb/2805216This list may differ from the official list of supported systems on the Microsoft Azure Platform, as described here: http://support.microsoft.com/kb/2805216

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

Altri sistemi supportati:Other Supported Systems:

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

Per il corretto funzionamento dell'agente Linux sono necessari alcuni package di sistema:The Linux agent depends on some system packages in order to function properly:

  • Python 2.6+Python 2.6+
  • OpenSSL 1.0+OpenSSL 1.0+
  • OpenSSH 5.3+OpenSSH 5.3+
  • Utilità file system: sfdisk, fdisk, mkfs, separateFilesystem utilities: sfdisk, fdisk, mkfs, parted
  • Strumenti password: chpasswd, sudoPassword tools: chpasswd, sudo
  • Strumenti di elaborazione testo: sed, grepText processing tools: sed, grep
  • Strumenti di rete: ip-routeNetwork tools: ip-route
  • Supporto di kernel per l'installazione di file system UDF.Kernel support for mounting UDF filesystems.

InstallazioneInstallation

Il metodo preferito per l'installazione e l'aggiornamento dell'agente Linux di Azure prevede l'installazione tramite un pacchetto RPM o DEB dal repository di pacchetti della distribuzione.Installation using an RPM or a DEB package from your distribution's package repository is the preferred method of installing and upgrading the Azure Linux Agent. Tutti i provider di distribuzione supportati integrano il pacchetto agente Linux di Azure nelle immagini e nei repository.All the endorsed distribution providers integrate the Azure Linux agent package into their images and repositories.

Leggere la documentazione nel repository dell'agente Linux di Azure su GitHub per conoscere le opzioni di installazione avanzate, ad esempio l'installazione da origine o da percorsi personalizzati o prefissi.Refer to the documentation in the Azure Linux Agent repo on GitHub for advanced installation options, such as installing from source or to custom locations or prefixes.

Opzioni da riga di comandoCommand Line Options

FlagFlags

  • verbose: aumenta il livello di dettaglio del comando specificatoverbose: Increase verbosity of specified command
  • force: ignora la conferma interattiva per determinati comandiforce: Skip interactive confirmation for some commands

Comandi:Commands

  • help: elenca i flag e i comandi supportati.help: Lists the supported commands and flags.
  • deprovision: tenta di pulire il sistema per renderlo idoneo per un nuovo provisioning.deprovision: Attempt to clean the system and make it suitable for re-provisioning. Questa operazione comporta l'eliminazione di quanto segue:This operation deleted the following:

    • Tutte le chiavi host (se Provisioning.RegenerateSshHostKeyPair è 'y' nel file di configurazione)All SSH host keys (if Provisioning.RegenerateSshHostKeyPair is 'y' in the configuration file)
    • Configurazione NameServer in /etc/resolv.confNameserver configuration in /etc/resolv.conf
    • Password radice da /etc/shadow (se Provisioning.DeleteRootPassword è 'y' nel file di configurazione)Root password from /etc/shadow (if Provisioning.DeleteRootPassword is 'y' in the configuration file)
    • Lease client DHCP memorizzati nella cacheCached DHCP client leases
    • Ripristina il nome host su localhost.localdomainResets host name to localhost.localdomain

Avviso

Il deprovisioning non garantisce che dall'immagine vengano cancellate tutte le informazioni sensibili e che l'immagine sia adatta per la ridistribuzione.Deprovisioning does not guarantee that the image is cleared of all sensitive information and suitable for redistribution.

  • deprovision+user: esegue tutte le operazioni in -deprovision (sopra) ed elimina l'ultimo account utente sottoposto a provisioning (ottenuto da /var/lib/waagent) e i dati associati.deprovision+user: Performs everything under -deprovision (above) and also deletes the last provisioned user account (obtained from /var/lib/waagent) and associated data. Questo parametro viene usato per il deprovisioning di un'immagine precedentemente sottoposta a provisioning in Azure in modo che possa essere acquisita e riutilizzata.This parameter is when de-provisioning an image that was previously provisioning on Azure so it may be captured and re-used.
  • version: visualizza la versione di waagentversion: Displays the version of waagent
  • serialconsole: configura GRUB affinché contrassegni ttyS0 (la prima porta seriale) come console di avvio.serialconsole: Configures GRUB to mark ttyS0 (the first serial port) as the boot console. Questo garantisce che i log di avvio del kernel vengano inviati alla porta seriale e resi disponibili per il debug.This ensures that kernel bootup logs are sent to the serial port and made available for debugging.
  • daemon: esegue waagent come daemon per gestire l'interazione con la piattaforma.daemon: Run waagent as a daemon to manage interaction with the platform. Questo argomento è specificato per waagent nello script di inizializzazione di waagent.This argument is specified to waagent in the waagent init script.
  • start: esegue waagent come processo in backgroundstart: Run waagent as a background process

ConfigurazioneConfiguration

Un file di configurazione (/etc/waagent.conf) controlla le azioni dell'agente waagent.A configuration file (/etc/waagent.conf) controls the actions of waagent. Di seguito è riportato un file di configurazione di esempio:A sample configuration file is shown below:

Provisioning.Enabled=y
Provisioning.DeleteRootPassword=n
Provisioning.RegenerateSshHostKeyPair=y
Provisioning.SshHostKeyPairType=rsa
Provisioning.MonitorHostName=y
Provisioning.DecodeCustomData=n
Provisioning.ExecuteCustomData=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

Di seguito sono descritte le opzioni di configurazione disponibili in modo dettagliato.The various configuration options are described in detail below. Le opzioni di configurazione sono di tre tipi: Boolean, String o Integer.Configuration options are of three types; Boolean, String or Integer. Le opzioni di configurazione booleane possono essere specificate come "y" o "n".The Boolean configuration options can be specified as "y" or "n". È possibile usare la parola chiave speciale "None" per alcune voci di configurazione di tipo stringa, come indicato di seguito.The special keyword "None" may be used for some string type configuration entries as detailed below.

Provisioning.Enabled:Provisioning.Enabled:
Tipo: booleanoType: Boolean
Predefinito: yDefault: y

Consente all'utente di attivare o disattivare la funzionalità di provisioning nell'agente.This allows the user to enable or disable the provisioning functionality in the agent. I valori validi sono "y" o "n".Valid values are "y" or "n". Se il provisioning è disabilitato, le chiavi utente e host SSH nell'immagine vengono mantenute e qualsiasi configurazione specificata nell'API di provisioning di Azure viene ignorata.If provisioning is disabled, SSH host and user keys in the image are preserved and any configuration specified in the Azure provisioning API is ignored.

Nota

Per impostazione predefinita il parametro Provisioning.Enabled è impostato su "n" nelle immagini Ubuntu Cloud che usano cloud-init per il provisioning.The Provisioning.Enabled parameter defaults to "n" on Ubuntu Cloud Images that use cloud-init for provisioning.

Provisioning.DeleteRootPassword:Provisioning.DeleteRootPassword:
Tipo: booleanoType: Boolean
Predefinito: nDefault: n

Se questa voce è impostata, la password radice nel file /etc/shadow viene cancellata durante il processo di provisioning.If set, the root password in the /etc/shadow file is erased during the provisioning process.

Provisioning.RegenerateSshHostKeyPair:Provisioning.RegenerateSshHostKeyPair:
Tipo: booleanoType: Boolean
Predefinito: yDefault: y

Se questa voce è impostata, tutte le coppie di chiavi host SSH (ecdsa, dsa e rsa) vengono eliminate da /etc/ssh/ durante il processo di provisioningIf set, all SSH host key pairs (ecdsa, dsa and rsa) are deleted during the provisioning process from /etc/ssh/. e viene generata un'unica coppia di chiavi aggiornata.And a single fresh key pair is generated.

Il tipo di crittografia per la coppia di chiavi aggiornata è configurabile dalla voce Provisioning.SshHostKeyPairType.The encryption type for the fresh key pair is configurable by the Provisioning.SshHostKeyPairType entry. Si noti che alcune distribuzioni ricreeranno le coppie di chiavi SSH per qualsiasi tipo di crittografia mancante al riavvio del daemon SSH, ad esempio in caso di riavvio.Please note that some distributions will re-create SSH key pairs for any missing encryption types when the SSH daemon is restarted (for example, upon a reboot).

Provisioning.SshHostKeyPairType:Provisioning.SshHostKeyPairType:
Tipo: StringType: String
Predefinito: rsaDefault: rsa

È possibile impostare questa voce su un tipo di algoritmo di crittografia supportato dal daemon SSH nella macchina virtuale.This can be set to an encryption algorithm type that is supported by the SSH daemon on the virtual machine. I valori supportati sono in genere "rsa", "dsa" e "ecdsa".The typically supported values are "rsa", "dsa" and "ecdsa". Si noti che "putty.exe" in Windows non supporta il tipo "ecdsa".Note that "putty.exe" on Windows does not support "ecdsa". Se pertanto si intende usare putty.exe in Windows per connettersi a una distribuzione Linux, usare "rsa" o "dsa".So, if you intend to use putty.exe on Windows to connect to a Linux deployment, please use "rsa" or "dsa".

Provisioning.MonitorHostName:Provisioning.MonitorHostName:
Tipo: booleanoType: Boolean
Predefinito: yDefault: y

Se questa voce è impostata, waagent monitorerà la macchina virtuale Linux per rilevare modifiche del nome host (come restituite dal comando "hostname") e aggiornerà automaticamente la configurazione di rete nell'immagine per riflettere la modifica.If set, waagent will monitor the Linux virtual machine for hostname changes (as returned by the "hostname" command) and automatically update the networking configuration in the image to reflect the change. Per effettuare il push della modifica del nome ai server DNS, la funzionalità di rete nella macchina virtuale verrà riavviata,In order to push the name change to the DNS servers, networking will be restarted in the virtual machine. causando una breve interruzione nella connettività Internet.This will result in brief loss of Internet connectivity.

Provisioning.DecodeCustomDataProvisioning.DecodeCustomData
Tipo: booleanoType: Boolean
Predefinito: nDefault: n

Se impostato, waagent decodificherà CustomData da Base64.If set, waagent will decode CustomData from Base64.

Provisioning.ExecuteCustomDataProvisioning.ExecuteCustomData
Tipo: booleanoType: Boolean
Predefinito: nDefault: n

Se impostato, waagent eseguirà CustomData dopo il provisioning.If set, waagent will execute CustomData after provisioning.

Provisioning.PasswordCryptIdProvisioning.PasswordCryptId
Tipo: stringaType:String
Predefinito: 6Default:6

Algoritmo usato dalla crittografia durante la generazione di hash della password.Algorithm used by crypt when generating password hash.
1 - MD51 - MD5
2a - Blowfish2a - Blowfish
5 - SHA-2565 - SHA-256
6 - SHA-5126 - SHA-512

Provisioning.PasswordCryptSaltLengthProvisioning.PasswordCryptSaltLength
Tipo: stringaType:String
Predefinito: 10Default:10

Lunghezza di salt casuale usata durante la generazione di hash della password.Length of random salt used when generating password hash.

ResourceDisk.Format:ResourceDisk.Format:
Tipo: booleanoType: Boolean
Predefinito: yDefault: y

Se questa voce è impostata, il disco risorse fornito dalla piattaforma verrà formattato e montato da waagent se il tipo di file system richiesto dall'utente in "ResourceDisk.Filesystem" è diverso da "ntfs".If set, the resource disk provided by the platform will be formatted and mounted by waagent if the filesystem type requested by the user in "ResourceDisk.Filesystem" is anything other than "ntfs". Una singola partizione di tipo Linux (83) verrà resa disponibile nel disco.A single partition of type Linux (83) will be made available on the disk. Si noti che la partizione non verrà formattata se è possibile montarla correttamente.Note that this partition will not be formatted if it can be successfully mounted.

ResourceDisk.Filesystem:ResourceDisk.Filesystem:
Tipo: StringType: String
Predefinito: ext4Default: ext4

Specifica il tipo di file system per il disco risorse.This specifies the filesystem type for the resource disk. I valori supportati variano in base alla distribuzione Linux.Supported values vary by Linux distribution. Se la stringa è X, è necessario che mkfs.X sia presente nell'immagine Linux.If the string is X, then mkfs.X should be present on the Linux image. Le immagini SLES 11 in genere utilizzano il valore 'ext3'.SLES 11 images should typically use 'ext3'. Le immagini FreeBSD in questo caso devono usare il valore 'ufs2'.FreeBSD images should use 'ufs2' here.

ResourceDisk.MountPoint:ResourceDisk.MountPoint:
Tipo: StringType: String
Predefinito: /mnt/resourceDefault: /mnt/resource

Specifica il percorso in cui è montato il disco risorse.This specifies the path at which the resource disk is mounted. Si noti che il disco risorse è un disco temporaneo e potrebbe essere svuotato in seguito al deprovisioning della macchina virtuale.Note that the resource disk is a temporary disk, and might be emptied when the VM is deprovisioned.

ResourceDisk.MountOptionsResourceDisk.MountOptions
Tipo: StringType: String
Predefinito: nessunoDefault: None

Specifica le opzioni di montaggio del disco da passare al comando.Specifies disk mount options to be passed to the mount -o command. È un elenco di valori delimitato da virgole, ad esempioThis is a comma separated list of values, ex. nodev,nosuid.'nodev,nosuid'. Vedere montaggio(8) per informazioni dettagliate.See mount(8) for details.

ResourceDisk.EnableSwap:ResourceDisk.EnableSwap:
Tipo: booleanoType: Boolean
Predefinito: nDefault: n

Se questa voce è impostata, viene creato un file di scambio (/swapfile) nel disco risorse e aggiunto all'area di swap del sistema.If set, a swap file (/swapfile) is created on the resource disk and added to the system swap space.

ResourceDisk.SwapSizeMB:ResourceDisk.SwapSizeMB:
Tipo: numero interoType: Integer
Predefinito: 0Default: 0

Dimensione del file di scambio in megabyte.The size of the swap file in megabytes.

Logs.Verbose:Logs.Verbose:
Tipo: booleanoType: Boolean
Predefinito: nDefault: n

Se questa voce è impostata, viene incrementato il livello di dettaglio del log.If set, log verbosity is boosted. Waagent registra in /var/log/waagent.log e usufruisce della funzionalità logrotate del sistema per la rotazione dei log.Waagent logs to /var/log/waagent.log and leverages the system logrotate functionality to rotate logs.

OS.EnableRDMAOS.EnableRDMA
Tipo: booleanoType: Boolean
Predefinito: nDefault: n

Se impostato, l'agente tenterà di installare e caricare un driver del kernel RDMA adatto alla versione del firmware nell'hardware sottostante.If set, the agent will attempt to install and then load an RDMA kernel driver that matches the version of the firmware on the underlying hardware.

OS.RootDeviceScsiTimeout:OS.RootDeviceScsiTimeout:
Tipo: numero interoType: Integer
Predefinito: 300Default: 300

Consente di configurare il timeout SCSI in secondi nel disco del sistema operativo e nelle unità dati.This configures the SCSI timeout in seconds on the OS disk and data drives. Se questa voce non è impostata, vengono usate le impostazioni predefinite del sistema.If not set, the system defaults are used.

OS.OpensslPath:OS.OpensslPath:
Tipo: StringType: String
Predefinito: nessunoDefault: None

È possibile aggiungere questa voce per specificare un percorso alternativo per il file binario openssl da usare per le operazioni di crittografia.This can be used to specify an alternate path for the openssl binary to use for cryptographic operations.

HttpProxy.Host, HttpProxy.PortHttpProxy.Host, HttpProxy.Port
Tipo: StringType: String
Predefinito: nessunoDefault: None

Se impostato, l'agente userà il server proxy per accedere a Internet.If set, the agent will use this proxy server to access the internet.

Immagini di Ubuntu CloudUbuntu Cloud Images

Si noti che le immagini di Ubuntu Cloud utilizzano cloud-init per eseguire molte attività di configurazione che verrebbero altrimenti gestite dall’agente Linux di Azure.Note that Ubuntu Cloud Images utilize cloud-init to perform many configuration tasks that would otherwise be managed by the Azure Linux Agent. Tenere presenti le differenze seguenti:Please note the following differences:

  • Provisioning.Enabled è "n" nelle immagini di Ubuntu Cloud che utilizzano cloud-init per eseguire attività di provisioning.Provisioning.Enabled defaults to "n" on Ubuntu Cloud Images that use cloud-init to perform provisioning tasks.
  • I seguenti parametri di configurazione non hanno alcun effetto sulle immagini di Ubuntu Cloud che utilizzano cloud-init per gestire disco risorse e spazio di scambio:The following configuration parameters have no effect on Ubuntu Cloud Images that use cloud-init to manage the resource disk and swap space:

    • ResourceDisk.FormatResourceDisk.Format
    • ResourceDisk.FilesystemResourceDisk.Filesystem
    • ResourceDisk.MountPointResourceDisk.MountPoint
    • ResourceDisk.EnableSwapResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMBResourceDisk.SwapSizeMB
  • Vedere le risorse seguenti per configurare il punto di montaggio del disco di risorsa e scambiare spazio nelle immagini di Ubuntu Cloud durante il provisioning:Please see the following resources to configure the resource disk mount point and swap space on Ubuntu Cloud Images during provisioning: