Что такое агент Linux для Azure и как его использоватьUnderstanding and using the Azure Linux Agent

Агент Linux для Microsoft Azure (waagent) управляет подготовкой Linux и FreeBSD и взаимодействием виртуальной машины с контроллером структуры Azure.The Microsoft Azure Linux Agent (waagent) manages Linux & FreeBSD provisioning, and VM interaction with the Azure Fabric Controller. Помимо агента Linux, предоставляющего функциональные возможности подготовки, в Azure также можно использовать cloud-init для некоторых операционных систем Linux.In addition to the Linux Agent providing provisioning functionality, Azure also provides the option of using cloud-init for some Linux OSes. Агент Linux предоставляет следующие функциональные возможности для развертываний IaaS в Linux и FreeBSD:The Linux Agent provides the following functionality for Linux and FreeBSD IaaS deployments:

Примечание

Дополнительные сведения см. в файле сведений.For more information, see the README.

  • Подготовка образаImage Provisioning

    • Создание учетной записи пользователяCreation of a user account
    • Настройка типов аутентификации SSHConfiguring SSH authentication types
    • Развертывание открытых ключей SSH и пар ключейDeployment of SSH public keys and key pairs
    • Настройка имени узлаSetting the host name
    • Публикация имени узла DNS платформыPublishing the host name to the platform DNS
    • Отчет с отпечатком ключа узла SSH для платформыReporting SSH host key fingerprint to the platform
    • Управление диском ресурсовResource Disk Management
    • Форматирование и подключение диска ресурсовFormatting and mounting the resource disk
    • Настройка пространства подкачкиConfiguring swap space
  • СетьNetworking

    • Управляет маршрутами для улучшения совместимости с DHCP-серверами платформыManages routes to improve compatibility with platform DHCP servers
    • Обеспечивает стабильность имени сетевого интерфейсаEnsures the stability of the network interface name
  • ЯдроKernel

    • Настраивает виртуальную архитектуру NUMA (отключить для ядра версий ранее 2.6.37)Configures virtual NUMA (disable for kernel <2.6.37)
    • Использование энтропии Hyper-V для /dev/randomConsumes Hyper-V entropy for /dev/random
    • Настройка времени ожидания SCSI для корневого устройства (может быть удаленным)Configures SCSI timeouts for the root device (which could be remote)
  • ДиагностикаDiagnostics

    • Перенаправление консоли на последовательный портConsole redirection to the serial port
  • Развернутые приложения SCVMMSCVMM Deployments

    • Обнаружение и начальная загрузка агента VMM для Linux при работе в среде 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
  • Расширение виртуальной машиныVM Extension

    • Вставка компонента, созданного корпорацией Майкрософт и ее партнерами, в виртуальную машину Linux (IaaS) для включения программного обеспечения и автоматизации настройкиInject component authored by Microsoft and Partners into Linux VM (IaaS) to enable software and configuration automation
    • Эталонная реализация расширения виртуальной машины на сайте https://github.com/Azure/azure-linux-extensions.VM Extension reference implementation on https://github.com/Azure/azure-linux-extensions

Обмен даннымиCommunication

Поток информации от платформы к агенту передается по двум каналам:The information flow from the platform to the agent occurs via two channels:

  • Прилагаемый DVD, используемый во время загрузки, для развернутых приложений IaaS.A boot-time attached DVD for IaaS deployments. На этом DVD содержится OVF-совместимый файл конфигурации, включающий всю информацию для подготовки кроме самих пар ключей SSH.This DVD includes an OVF-compliant configuration file that includes all provisioning information other than the actual SSH keypairs.
  • Чтобы получить развертывание и настройку топологии, используется конечная точка TCP с REST API.A TCP endpoint exposing a REST API used to obtain deployment and topology configuration.

ТребованияRequirements

Следующие системы протестированы и гарантированно поддерживают работу с агентом Linux для Azure:The following systems have been tested and are known to work with the Azure Linux Agent:

Примечание

Этот список может отличаться от официального списка систем, поддерживаемых платформой Microsoft Azure, который доступен на странице: https://support.microsoft.com/kb/2805216.This 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+

Другие поддерживаемые системы:Other Supported Systems:

  • FreeBSD 10 и более поздней версии (агент Linux для Azure 2.0.10 и более поздней версии)FreeBSD 10+ (Azure Linux Agent v2.0.10+)

Для правильного функционирования агента Linux требуются определенные пакеты системы: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+
  • Служебные программы файловой системы: sfdisk, fdisk, mkfs, partedFilesystem utilities: sfdisk, fdisk, mkfs, parted
  • Инструменты работы с паролями: chpasswd, sudoPassword tools: chpasswd, sudo
  • Инструменты обработки текста: sed, grepText processing tools: sed, grep
  • Сетевые инструменты: ip-routeNetwork tools: ip-route
  • Поддержка ядра для монтирования файловых систем UDF.Kernel support for mounting UDF filesystems.

УстановкаInstallation

Установка с помощью пакета RPM или DEB из репозитория пакета дистрибутива является предпочтительным способом установки и обновления агента Linux для 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. Все поставщики поддерживаемых дистрибутивов встраивают пакет агента Linux для Azure в свои образы и репозитории.All the endorsed distribution providers integrate the Azure Linux agent package into their images and repositories.

Дополнительные варианты установки, например установка из источника, установка в пользовательские расположения или префиксы, описаны в документации в репозитории агента Linux для Azure на сайте GitHub.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.

Параметры командной строкиCommand-Line Options

ФлагиFlags

  • verbose: расширить указанную командуverbose: Increase verbosity of specified command
  • force: пропустить интерактивные подтверждения для некоторых командforce: Skip interactive confirmation for some commands

КомандыCommands

  • help: список поддерживаемых команд и флагов.help: Lists the supported commands and flags.

  • deprovision: попытка очистки системы и выполнение действий для ее повторной подготовки.deprovision: Attempt to clean the system and make it suitable for reprovisioning. Следующая операция удаляет:The following operation deletes:

    • Все ключи узла SSH (если в файле конфигурации для Provisioning.RegenerateSshHostKeyPair указано значение «y»)All SSH host keys (if Provisioning.RegenerateSshHostKeyPair is 'y' in the configuration file)
    • Настройка имени сервера в /etc/resolv.confNameserver configuration in /etc/resolv.conf
    • Корневой пароль из /etc/shadow (если в файле конфигурации для Provisioning.DeleteRootPassword указано значение «y»)Root password from /etc/shadow (if Provisioning.DeleteRootPassword is 'y' in the configuration file)
    • Кэшированные аренды DHCP-клиентовCached DHCP client leases
    • Возвращает имя узла localhost.localdomainResets host name to localhost.localdomain

Предупреждение

Отмена подготовки не гарантирует, что из образа будет удалена вся конфиденциальная информация и что он будет готов к повторному распространению.Deprovisioning does not guarantee that the image is cleared of all sensitive information and suitable for redistribution.

  • deprovision+user: выполняет все действия, указанные для команды -deprovision (см. выше), а также удаляет последнюю подготовленную учетную запись пользователя (полученную в /var/lib/waagent) и связанные с ней данные.deprovision+user: Performs everything in -deprovision (above) and also deletes the last provisioned user account (obtained from /var/lib/waagent) and associated data. Этот параметр используется для отмены подготовки ранее подготовленного образа в Azure с целью его записи и повторного использования.This parameter is when de-provisioning an image that was previously provisioning on Azure so it may be captured and reused.
  • version: отображает версию waagentversion: Displays the version of waagent
  • serialconsole: настройка GRUB для маркировки ttyS0 (первый последовательный порт) в качестве консоли загрузки.serialconsole: Configures GRUB to mark ttyS0 (the first serial port) as the boot console. Это гарантирует, что журналы загрузки ядра отправляются на последовательный порт и становятся доступными для отладки.This ensures that kernel bootup logs are sent to the serial port and made available for debugging.
  • daemon: запуск waagent в качестве управляющей программы для контроля взаимодействия с платформой.daemon: Run waagent as a daemon to manage interaction with the platform. Этот аргумент указывается для waagent в сценарии инициализации waagent.This argument is specified to waagent in the waagent init script.
  • start: запуск waagent как фонового процессаstart: Run waagent as a background process

Параметр ConfigurationConfiguration

Файл конфигурации (/ etc/waagent.conf) определяет действия waagent.A configuration file (/etc/waagent.conf) controls the actions of waagent. Ниже показан пример файла конфигурации.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
```

Далее подробно описаны различные параметры конфигурации.The following various configuration options are described. Параметры конфигурации относятся к одному из трех типов: логическое значение, строка или целое число.Configuration options are of three types; Boolean, String, or Integer. Логические параметры конфигурации могут принимать значение "y" или "n".The Boolean configuration options can be specified as "y" or "n". Для некоторых записей конфигурации типа "строка", описанных ниже, может использоваться специальное ключевое слово "None".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

Он позволяет пользователю включить или отключить функцию подготовки в агенте.This allows the user to enable or disable the provisioning functionality in the agent. Допустимые значения: "y" или "n".Valid values are "y" or "n". Если подготовка отключена, узел SSH и пользовательские ключи в образе сохраняются, а любые настройки, указанные в API для подготовки 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.

Примечание

В образах облаков Ubuntu, использующих для подготовки пакет cloud-init, для параметра Provisioning.Enabled по умолчанию устанавливается значение n.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

Удаляет корневой пароль в файле /etc/shadow в процессе подготовки.If set, the root password in the /etc/shadow file is erased during the provisioning process.

Provisioning.RegenerateSshHostKeyPair:Provisioning.RegenerateSshHostKeyPair:

Type: Boolean  
Default: y

Если задан, удаляет все пары ключей узла SSH (ecdsa, dsa и rsa) из /etc/ssh/ в процессе подготовки.If set, all SSH host key pairs (ecdsa, dsa, and rsa) are deleted during the provisioning process from /etc/ssh/. При этом генерируется одна новая пара ключей.And a single fresh key pair is generated.

Тип шифрования для новой пары ключей настраивается с помощью операции Provisioning.SshHostKeyPairType.The encryption type for the fresh key pair is configurable by the Provisioning.SshHostKeyPairType entry. Некоторые дистрибутивы повторно создают пары ключей SSH для любых недостающих типов шифрования при перезапуске управляющей программы SSH (например, после перезагрузки).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

Задается тип алгоритма шифрования, поддерживаемый управляющей программой SSH на виртуальной машине.This can be set to an encryption algorithm type that is supported by the SSH daemon on the virtual machine. Обычно поддерживаются значения "rsa", "dsa" и "ecdsa".The typically supported values are "rsa", "dsa" and "ecdsa". "putty.exe" в Windows не поддерживает "ecdsa"."putty.exe" on Windows does not support "ecdsa". Таким образом, если вы планируете использовать putty.exe в Windows для подключения к развертыванию Linux, используйте "rsa" или "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

Если задан, waagent отслеживает виртуальную машину Linux на предмет изменений имени узла (как значение, возвращаемое командой "hostname") и автоматически обновляет сетевую конфигурацию образа в соответствии с изменениями.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. Для передачи изменения имени на DNS-серверы сеть на виртуальной машине будет перезапущена.In order to push the name change to the DNS servers, networking is restarted in the virtual machine. Это приведет к кратковременной потере подключения к Интернету.This results in brief loss of Internet connectivity.

Provisioning.DecodeCustomDataProvisioning.DecodeCustomData

Type: Boolean  
Default: n

Если задан, waagent декодирует пользовательские данные CustomData из кодировки Base64.If set, waagent decodes CustomData from Base64.

Provisioning.ExecuteCustomDataProvisioning.ExecuteCustomData

Type: Boolean  
Default: n

Если задан, waagent выполняет пользовательские данные CustomData после подготовки.If set, waagent executes CustomData after provisioning.

Provisioning.AllowResetSysUserProvisioning.AllowResetSysUser

Type: Boolean
Default: n

Позволяет сбросить пароль пользователя системы; по умолчанию параметр отключен.This option allows the password for the sys user to be reset; default is disabled.

Provisioning.PasswordCryptIdProvisioning.PasswordCryptId

Type: String  
Default: 6

Алгоритм, используемый crypt при создании хеша пароля.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

Длина случайной соли, используемой при создании хеша пароля.Length of random salt used when generating password hash.

ResourceDisk.Format:ResourceDisk.Format:

Type: Boolean  
Default: y

Если задан, диск ресурсов, предоставленный платформой, форматируется и монтируется с использованием waagent, если тип файловой системы, запрошенный пользователем в "ResourceDisk.Filesystem", отличается от "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". На диске доступен один раздел типа Linux (83).A single partition of type Linux (83) is made available on the disk. Обратите внимание, что этот раздел не форматируется, если он может быть успешно подключен.This partition is not formatted if it can be successfully mounted.

ResourceDisk.Filesystem:ResourceDisk.Filesystem:

Type: String  
Default: ext4

Указывает тип файловой системы для диска ресурса.This specifies the filesystem type for the resource disk. Допустимые значения зависят от дистрибутива Linux.Supported values vary by Linux distribution. Если используется строка X, в образе Linux должна присутствовать строка mkfs.X.If the string is X, then mkfs.X should be present on the Linux image. Для образов SLES 11 обычно используется значение "ext3".SLES 11 images should typically use 'ext3'. Для образов FreeBSD здесь следует использовать "ufs2".FreeBSD images should use 'ufs2' here.

ResourceDisk.MountPoint:ResourceDisk.MountPoint:

Type: String  
Default: /mnt/resource 

Указывает путь, по которому подключен диск ресурсов.This specifies the path at which the resource disk is mounted. Диск ресурсов является временным диском и должен быть очищен при отмене подготовки виртуальной машины.The resource disk is a temporary disk, and might be emptied when the VM is deprovisioned.

ResourceDisk.MountOptionsResourceDisk.MountOptions

Type: String  
Default: None

Задает параметры монтирования диска, которые должны быть переданы команде mount -o.Specifies disk mount options to be passed to the mount -o command. Это список значений, разделенный запятыми, напримерThis is a comma-separated list of values, ex. 'nodev,nosuid'.'nodev,nosuid'. Подробные сведения см. в разделе mount(8).See mount(8) for details.

ResourceDisk.EnableSwap:ResourceDisk.EnableSwap:

Type: Boolean  
Default: n

Если задано, на диске ресурсов создается файл подкачки (/swapfile), который добавляется к пространству подкачки в системе.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

Размер файла подкачки в мегабайтах.The size of the swap file in megabytes.

Logs.Verbose:Logs.Verbose:

Type: Boolean  
Default: n

Если задано, то файл журнала расширяется.If set, log verbosity is boosted. Waagent записывает данные в /var/log/waagent.log, а также использует системную функцию logrotate для ротации журналов.Waagent logs to /var/log/waagent.log and utilizes the system logrotate functionality to rotate logs.

OS.EnableRDMAOS.EnableRDMA

Type: Boolean  
Default: n

Если задан, агент пытается установить, а затем загрузить драйвер ядра RDMA, соответствующий версии встроенного ПО базового оборудования.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

Этот параметр настраивает время ожидания SCSI в секундах на дисках операционной системы и на дисках с данными.This setting configures the SCSI timeout in seconds on the OS disk and data drives. Если не установлено, будут использоваться системные значения по умолчанию.If not set, the system defaults are used.

OS.OpensslPath:OS.OpensslPath:

Type: String  
Default: None

Этот параметр можно использовать для указания альтернативного пути для двоичного файла openssl, используемого при выполнении шифрования.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

Если задан, агент использует этот прокси-сервер для доступа в Интернет.If set, the agent uses this proxy server to access the internet.

AutoUpdate.EnabledAutoUpdate.Enabled

Type: Boolean
Default: y

Позволяет включить или отключить автоматическое обновление для обработки целевого состояния; по умолчанию параметр включен.Enable or disable auto-update for goal state processing; default is enabled.

Образы облаков UbuntuUbuntu Cloud Images

В образах облаков Ubuntu пакет cloud-init используется для выполнения ряда задач настройки, которыми в противном случае управлял бы агент Linux для Azure.Ubuntu Cloud Images utilize cloud-init to perform many configuration tasks that would otherwise be managed by the Azure Linux Agent. Существуют следующие отличия.The following differences apply:

  • Provisioning.Enabled по умолчанию устанавливается значение "n" в образах облаков Ubuntu, использующих пакет cloud-init для выполнения задач по подготовке.Provisioning.Enabled defaults to "n" on Ubuntu Cloud Images that use cloud-init to perform provisioning tasks.

  • Следующие параметры конфигурации не влияют на образы облаков Ubuntu, использующие пакеты cloud-init для управления диском ресурсов и пространством подкачки:The following configuration parameters have no effect on Ubuntu Cloud Images that use cloud-init to manage the resource disk and swap space:

    • ResourceDisk.Format;ResourceDisk.Format
    • ResourceDisk.Filesystem;ResourceDisk.Filesystem
    • ResourceDisk.MountPoint;ResourceDisk.MountPoint
    • ResourceDisk.EnableSwap;ResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMB.ResourceDisk.SwapSizeMB
  • Если вам нужно настроить точку подключения диска ресурсов и пространство подкачки в образах облаков Ubuntu во время подготовки, см. следующие ресурсы.For more information, see the following resources to configure the resource disk mount point and swap space on Ubuntu Cloud Images during provisioning: