Información y uso del agente de Linux de AzureUnderstanding and using the Azure Linux Agent

El agente Linux de Microsoft Azure (waagent) administra el aprovisionamiento de Linux & FreeBSD y la interacción de máquina virtual con el controlador de tejido de Azure.The Microsoft Azure Linux Agent (waagent) manages Linux & FreeBSD provisioning, and VM interaction with the Azure Fabric Controller. Además de disfrutar de la funcionalidad de aprovisionamiento mediante el agente Linux, Azure también ofrece la opción de usar cloud-init para algunos sistemas operativos Linux.In addition to the Linux Agent providing provisioning functionality, Azure also provides the option of using cloud-init for some Linux OSes. El agente Linux proporciona la siguiente funcionalidad para las implementaciones de IaaS de Linux y FreeBSD:The Linux Agent provides the following functionality for Linux and FreeBSD IaaS deployments:

Nota

Para más información, vea el archivo Léame.For more information, see the README.

  • Aprovisionamiento de imágenesImage Provisioning

    • Creación de una cuenta de usuarioCreation of a user account
    • Configuración de los tipos de autenticación de SSHConfiguring SSH authentication types
    • Implementación de claves públicas y pares de claves de SSHDeployment of SSH public keys and key pairs
    • Configuración del nombre de hostSetting the host name
    • Publicación del nombre de host para DNS de plataformaPublishing the host name to the platform DNS
    • Informe de huella digital de clave de host de SSH para la plataformaReporting SSH host key fingerprint to the platform
    • Administración del disco de recursosResource Disk Management
    • Formato y montaje del discos de recursosFormatting and mounting the resource disk
    • Configuración del espacio de intercambioConfiguring swap space
  • RedesNetworking

    • Administra las rutas para mejorar la compatibilidad con los servidores DHCP de la plataformaManages routes to improve compatibility with platform DHCP servers
    • Asegura la estabilidad del nombre de interfaz de redEnsures the stability of the network interface name
  • KernelKernel

    • Configura NUMA virtual (deshabilitar para el kernel cuya versión sea inferior a 2.6.37)Configures virtual NUMA (disable for kernel <2.6.37)
    • Consume entropía de Hyper-V para /dev/randomConsumes Hyper-V entropy for /dev/random
    • Configura tiempos de espera SCSI para el dispositivo raíz (que podría ser remoto)Configures SCSI timeouts for the root device (which could be remote)
  • DiagnósticoDiagnostics

    • Redirección de la consola al puerto serieConsole redirection to the serial port
  • Implementaciones de SCVMMSCVMM Deployments

    • Detecta y arranca el agente VMM para Linux cuando se ejecuta en un entorno de 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
  • Extensión de máquina virtualVM Extension

ComunicaciónCommunication

El flujo de información desde la plataforma hasta el agente se produce a través de dos canales:The information flow from the platform to the agent occurs via two channels:

  • Un DVD conectado de tiempo de arranque para las implementaciones de IaaS.A boot-time attached DVD for IaaS deployments. Este DVD incluye un archivo de configuración conforme a OVF que incluye toda la información de aprovisionamiento diferente de los pares de clave reales de SSH.This DVD includes an OVF-compliant configuration file that includes all provisioning information other than the actual SSH keypairs.
  • Un extremo de TCP que expone una API de REST que se usa para obtener la configuración de implementación y topología.A TCP endpoint exposing a REST API used to obtain deployment and topology configuration.

RequisitosRequirements

Los siguientes sistemas se han probado y se sabe que funcionan con el agente Linux de Azure:The following systems have been tested and are known to work with the Azure Linux Agent:

Nota

Esta lista puede diferir de la lista oficial de sistemas admitidos en la plataforma Microsoft Azure, como se describe aquí: https://support.microsoft.com/kb/2805216This list may differ from the official list of supported systems on the Microsoft Azure Platform, as described here: https://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+

Otros sistemas compatibles:Other Supported Systems:

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

El agente de Linux depende de algunos paquetes de sistema para funcionar correctamente:The Linux agent depends on some system packages in order to function properly:

  • Python 2.6Python 2.6+
  • OpenSSL 1.0+OpenSSL 1.0+
  • OpenSSH 5.3+OpenSSH 5.3+
  • Utilidades del sistema de archivos: sfdisk, fdisk, mkfs, partedFilesystem utilities: sfdisk, fdisk, mkfs, parted
  • Herramientas de contraseña: chpasswd, sudoPassword tools: chpasswd, sudo
  • Herramientas de procesamiento de texto: sed, grepText processing tools: sed, grep
  • Herramientas de red: ip-routeNetwork tools: ip-route
  • Compatibilidad de kernel para el montaje de sistemas de archivos UDF.Kernel support for mounting UDF filesystems.

InstalaciónInstallation

La instalación con RPM o un paquete de DEB del repositorio de paquetes de su distribución es el método preferido para instalar y actualizar el agente Linux de Azure.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. Todos los proveedores de distribución aprobada integran el paquete de agente Linux de Azure en sus imágenes y repositorios.All the endorsed distribution providers integrate the Azure Linux agent package into their images and repositories.

Consulte la documentación en el repositorio de agente Linux de Azure en GitHub para opciones de instalación avanzada, como la instalación desde el origen o en ubicaciones o prefijos personalizados.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.

Opciones de la línea de comandosCommand-Line Options

MarcasFlags

  • verbose: aumenta el nivel de detalle de un comando específico.verbose: Increase verbosity of specified command
  • force: omite la confirmación interactiva de algunos comandos.force: Skip interactive confirmation for some commands

Comandos:Commands

  • help: enumera los comandos y las marcas compatibles.help: Lists the supported commands and flags.

  • deprovision: intenta limpiar el sistema y prepararlo para un reaprovisionamiento.deprovision: Attempt to clean the system and make it suitable for reprovisioning. La operación siguiente elimina:The following operation deletes:

    • Todas las claves de host de SSH (si Provisioning.RegenerateSshHostKeyPair es "y" en el archivo de configuración)All SSH host keys (if Provisioning.RegenerateSshHostKeyPair is 'y' in the configuration file)
    • Configuración de Nameserver en /etc/resolv.confNameserver configuration in /etc/resolv.conf
    • Contraseña raíz desde /etc/shadow (si Provisioning.DeleteRootPassword es "y" en el archivo de configuración)Root password from /etc/shadow (if Provisioning.DeleteRootPassword is 'y' in the configuration file)
    • Concesiones del cliente de DHCP en cachéCached DHCP client leases
    • Restablece el nombre de host a localhost.localdomainResets host name to localhost.localdomain

Advertencia

El desaprovisionamiento no garantiza que se haya borrado toda información sensible de la imagen y que sea adecuada para su redistribución.Deprovisioning does not guarantee that the image is cleared of all sensitive information and suitable for redistribution.

  • deprovision+user: realiza todo de -deprovision (arriba) y también elimina la última cuenta de usuario aprovisionada (obtenida de /var/lib/waagent) y los datos asociados.deprovision+user: Performs everything in -deprovision (above) and also deletes the last provisioned user account (obtained from /var/lib/waagent) and associated data. Este parámetro está presente cuando se desaprovisiona una imagen que se estaba aprovisionando anteriormente en Azure de modo que se pueda capturar y volver a usar.This parameter is when de-provisioning an image that was previously provisioning on Azure so it may be captured and reused.
  • version: muestra la versión de waagent.version: Displays the version of waagent
  • serialconsole: configura GRUB para marcar ttyS0 (el primer puerto serie) como la consola de arranque.serialconsole: Configures GRUB to mark ttyS0 (the first serial port) as the boot console. Esto asegura que los registros de arranque del kernel se envíen al puerto serie y queden disponibles para su depuración.This ensures that kernel bootup logs are sent to the serial port and made available for debugging.
  • daemon: ejecuta waagent como un demonio para administrar la interacción con la plataforma.daemon: Run waagent as a daemon to manage interaction with the platform. Este argumento se especifica en waagent en el script init de waagent.This argument is specified to waagent in the waagent init script.
  • start: ejecuta waagent como proceso en segundo plano.start: Run waagent as a background process

ConfiguraciónConfiguration

Un archivo de configuración (/etc/waagent.conf) controla las acciones de waagent.A configuration file (/etc/waagent.conf) controls the actions of waagent. A continuación se muestra un archivo de configuración de ejemplo:The following shows a sample configuration file:

```
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
```

A continuación se describen varias opciones de configuración.The following various configuration options are described. Las opciones de configuración son de tres tipos: Boolean, String o Integer.Configuration options are of three types; Boolean, String, or Integer. Las opciones de configuración booleana se pueden especificar como "y" o "n".The Boolean configuration options can be specified as "y" or "n". La palabra clave especial "None" se puede usar para algunas entradas de la configuración tipo cadena como se detalla a continuación:The special keyword "None" may be used for some string type configuration entries as the following details:

Provisioning.Enabled:Provisioning.Enabled:

Type: Boolean  
Default: y

Esta opción permite que el usuario habilite o deshabilite la funcionalidad de aprovisionamiento en el agente.This allows the user to enable or disable the provisioning functionality in the agent. Los valores válidos son "y" o "n".Valid values are "y" or "n". Si se deshabilita el aprovisionamiento, se mantiene el host SSH y las claves de usuario en la imagen y se ignora toda configuración que se especifique en la API de aprovisionamiento de Azure.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

El parámetro Provisioning.Enabled toma el valor predeterminado "n" en imágenes Ubuntu Cloud Images que usan cloud-init para el aprovisionamiento.The Provisioning.Enabled parameter defaults to "n" on Ubuntu Cloud Images that use cloud-init for provisioning.

Provisioning.DeleteRootPassword:Provisioning.DeleteRootPassword:

Type: Boolean  
Default: n

Si se establece, se borra la contraseña raíz en el archivo /etc/shadow durante el proceso de aprovisionamiento.If set, the root password in the /etc/shadow file is erased during the provisioning process.

Provisioning.RegenerateSshHostKeyPair:Provisioning.RegenerateSshHostKeyPair:

Type: Boolean  
Default: y

Si se establece, se eliminan todos los pares de clave de host de SSH (ecdsa, dsa y rsa) durante el proceso de aprovisionamiento desde /etc/ssh/.If set, all SSH host key pairs (ecdsa, dsa, and rsa) are deleted during the provisioning process from /etc/ssh/. Además, se genera un solo par de clave nuevo.And a single fresh key pair is generated.

El tipo de cifrado para el par de clave nuevo se puede configurar mediante la entrada Provisioning.SshHostKeyPairType.The encryption type for the fresh key pair is configurable by the Provisioning.SshHostKeyPairType entry. Algunas distribuciones vuelven a crear los pares de clave de SSH para los tipos de cifrado que faltan cuando el demonio de SSH se reinicia (por ejemplo, en un nuevo arranque del equipo).Some distributions 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:

Type: String  
Default: rsa

Esta opción se puede establecer en un tipo de algoritmo de cifrado que es compatible con el demonio de SSH en la máquina virtual.This can be set to an encryption algorithm type that is supported by the SSH daemon on the virtual machine. Los valores generalmente admitidos son "rsa", "dsa" y "ecdsa".The typically supported values are "rsa", "dsa" and "ecdsa". "putty.exe" en Windows no admite "ecdsa"."putty.exe" on Windows does not support "ecdsa". Por lo tanto, si pretende usar putty.exe en Windows para conectarse a una implementación de Linux, use "rsa" o "dsa".So, if you intend to use putty.exe on Windows to connect to a Linux deployment, use "rsa" or "dsa".

Provisioning.MonitorHostName:Provisioning.MonitorHostName:

Type: Boolean  
Default: y

Si se configura, waagent supervisa la máquina virtual de Linux en busca de cambios en el nombre de host (según los devuelve el comando "hostname") y actualiza automáticamente la configuración de red en la imagen para reflejar el cambio.If set, waagent monitors 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. Para insertar el cambio de nombre en los servidores DNS, la red se reinicia en la máquina virtual.In order to push the name change to the DNS servers, networking is restarted in the virtual machine. Esta acción tiene como resultado una breve pérdida de la conectividad con Internet.This results in brief loss of Internet connectivity.

Provisioning.DecodeCustomDataProvisioning.DecodeCustomData

Type: Boolean  
Default: n

Si se establece, waagent descodifica CustomData desde Base64.If set, waagent decodes CustomData from Base64.

Provisioning.ExecuteCustomDataProvisioning.ExecuteCustomData

Type: Boolean  
Default: n

Si se establece, waagent ejecuta CustomData después del aprovisionamiento.If set, waagent executes CustomData after provisioning.

Provisioning.AllowResetSysUserProvisioning.AllowResetSysUser

Type: Boolean
Default: n

Esta opción permite restablecer la contraseña del usuario SYS; de forma predeterminada, está deshabilitada.This option allows the password for the sys user to be reset; default is disabled.

Provisioning.PasswordCryptIdProvisioning.PasswordCryptId

Type: String  
Default: 6

Algoritmo usado por el cifrado al generar el hash de contraseña.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

Type: String  
Default: 10

Longitud del valor salt aleatorio usado al generar el hash de contraseña.Length of random salt used when generating password hash.

ResourceDisk.Format:ResourceDisk.Format:

Type: Boolean  
Default: y

Si se establece, el disco de recursos proporcionado por la plataforma se formatea y se monta a través de waagent si el tipo de sistema de archivos solicitado por el usuario en "ResourceDisk.Filesystem" es cualquiera, salvo "ntfs".If set, the resource disk provided by the platform is formatted and mounted by waagent if the filesystem type requested by the user in "ResourceDisk.Filesystem" is anything other than "ntfs". Se deja disponible una sola partición de tipo Linux (83) en el disco.A single partition of type Linux (83) is made available on the disk. Esta partición no se formatea si se puede montar correctamente.This partition is not formatted if it can be successfully mounted.

ResourceDisk.Filesystem:ResourceDisk.Filesystem:

Type: String  
Default: ext4

De esta manera se especifica el tipo de sistema de archivos para el disco de recursos.This specifies the filesystem type for the resource disk. Los valores admitidos varían según la distribución de Linux.Supported values vary by Linux distribution. Si la cadena es X, entonces mkfs.X debe estar presente en la imagen de Linux.If the string is X, then mkfs.X should be present on the Linux image. Las imágenes de SLES 11 deben usar generalmente "ext3".SLES 11 images should typically use 'ext3'. Las imágenes de FreeBSD deben usar "ufs2".FreeBSD images should use 'ufs2' here.

ResourceDisk.MountPoint:ResourceDisk.MountPoint:

Type: String  
Default: /mnt/resource 

Esta opción especifica la ruta en la cual se monta el disco de recursos.This specifies the path at which the resource disk is mounted. El disco de recursos es un disco temporal que podría vaciarse cuando la máquina virtual se desaprovisiona.The resource disk is a temporary disk, and might be emptied when the VM is deprovisioned.

ResourceDisk.MountOptionsResourceDisk.MountOptions

Type: String  
Default: None

Especifica las opciones de montaje de disco que se pasarán al comando -o de montaje.Specifies disk mount options to be passed to the mount -o command. Esta es una lista de valores separados por comas, por ejemplo,This is a comma-separated list of values, ex. 'nodev,nosuid'.'nodev,nosuid'. Consulte mount(8) para obtener detalles.See mount(8) for details.

ResourceDisk.EnableSwap:ResourceDisk.EnableSwap:

Type: Boolean  
Default: n

Si se establece, se crea un archivo de intercambio (/swapfile) en el disco de recursos y se agrega al espacio de intercambio 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:

Type: Integer  
Default: 0

El tamaño del archivo de intercambio en megabytes.The size of the swap file in megabytes.

Logs.Verbose:Logs.Verbose:

Type: Boolean  
Default: n

Si se establece, se aumenta el nivel de detalle del registro.If set, log verbosity is boosted. Waagent crea los registros en /var/log/waagent.log y usa la funcionalidad logrotate del sistema para alternar los registros.Waagent logs to /var/log/waagent.log and utilizes the system logrotate functionality to rotate logs.

OS.EnableRDMAOS.EnableRDMA

Type: Boolean  
Default: n

Si se establece, el agente intenta instalar y cargar un controlador de kernel RDMA que coincida con la versión del firmware del hardware subyacente.If set, the agent attempts to install and then load an RDMA kernel driver that matches the version of the firmware on the underlying hardware.

OS.RootDeviceScsiTimeout:OS.RootDeviceScsiTimeout:

Type: Integer  
Default: 300

Esta opción configura el tiempo de espera SCSI en segundos en el disco del sistema operativo y las unidades de datos.This setting configures the SCSI timeout in seconds on the OS disk and data drives. Si no se establece, se usan los valores predeterminados del sistema.If not set, the system defaults are used.

OS.OpensslPath:OS.OpensslPath:

Type: String  
Default: None

Esta opción se puede usar para especificar una ruta alternativa para que el binario openssl la use para las operaciones criptográficas.This setting can be used to specify an alternate path for the openssl binary to use for cryptographic operations.

HttpProxy.Host, HttpProxy.PortHttpProxy.Host, HttpProxy.Port

Type: String  
Default: None

Si se establece, el agente usa este servidor proxy para tener acceso a Internet.If set, the agent uses this proxy server to access the internet.

AutoUpdate.EnabledAutoUpdate.Enabled

Type: Boolean
Default: y

Habilita o deshabilita la actualización automática del procesamiento del estado del objetivo; está habilitada de forma predeterminada.Enable or disable auto-update for goal state processing; default is enabled.

Ubuntu Cloud ImagesUbuntu Cloud Images

Las imágenes de tipo Ubuntu Cloud Images usan cloud-init para realizar muchas tareas de configuración que, de lo contrario, serían administradas por el agente Linux de Azure.Ubuntu Cloud Images utilize cloud-init to perform many configuration tasks that would otherwise be managed by the Azure Linux Agent. Se aplican las diferencias siguientes:The following differences apply:

  • Provisioning.Enabled toma el valor predeterminado "n" en Ubuntu Cloud Images que utilizan cloud-init para realizar tareas de aprovisionamiento.Provisioning.Enabled defaults to "n" on Ubuntu Cloud Images that use cloud-init to perform provisioning tasks.

  • Los parámetros de configuración siguientes no tienen ningún efecto en Ubuntu Cloud Images que usan cloud-init para administrar el disco de recursos y el espacio de intercambio: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
  • Para más información, vea los recursos siguientes para configurar el punto de montaje del disco de recursos e intercambiar espacio en Ubuntu Cloud Images durante el aprovisionamiento:For more information, see the following resources to configure the resource disk mount point and swap space on Ubuntu Cloud Images during provisioning: