Общие сведения об агенте виртуальной машины Azure Linux

Агент виртуальной машины Azure Linux (waagent) управляет подготовкой Linux и FreeBSD, а также взаимодействием виртуальной машины с контроллером структуры Azure. Помимо агента Linux, предоставляющего функции подготовки, Azure предоставляет возможность использования cloud-init для некоторых операционных систем Linux.

Важно

Для получения последней информации о поддержке FIPS 140-3 агентом гостевой виртуальной машины и его расширениями перейдите на aka.ms/linuxagentfipssupport.

Агент Linux предоставляет следующие функции для развертываний виртуальных машин Linux и FreeBSD Azure. Дополнительные сведения см. в файле README агента виртуальных машин Azure для Linux на сайте GitHub.

Примечание

Попробуйте использовать виртуальную машину для ускорения диагностики. Рекомендуется запустить Ассистент виртуальных машин для Windows или Ассистент виртуальных машин для Linux. Эти средства диагностики на основе скриптов помогают выявить распространенные проблемы, влияющие на гостевой агент виртуальной машины Azure и общую работоспособность виртуальных машин.

Если у вас возникли проблемы с производительностью виртуальных машин, перед обращением в службу поддержки запустите эти средства.

Подготовка изображений

  • Создает учетную запись пользователя.
  • Настраивает типы проверки подлинности SSH.
  • Развертывает открытые ключи и пары ключей Secure Shell (SSH).
  • Задает имя узла.
  • Публикует имя узла в системе доменных имен платформы (DNS).
  • Отправляет отпечаток ключа узла SSH на платформу.
  • Управляет диском ресурсов.
  • Форматирует и подключает диск ресурсов.
  • Настраивает пространство подкачки.

Сетевые технологии

  • Управляет маршрутами для повышения совместимости с серверами DHCP платформы.
  • Обеспечивает стабильность имени сетевого интерфейса.

Ядро

  • Настраивает виртуальную NUMA (отключена для ядра 2.6.37).
  • Использует энтропию Hyper-V для /dev/random.
  • Настраивает время ожидания SCSI для корневого устройства, которое может быть удалено.

Диагностика

  • Предоставляет перенаправление консоли на последовательный порт.

Развертывания System Center Virtual Machine Manager

  • Обнаруживает и загружает агент Virtual Machine Manager для Linux при запуске в среде System Center Virtual Machine Manager 2012 R2.

Расширение виртуальной машины

  • Внедряет компоненты, созданные корпорацией Майкрософт и партнерами, в виртуальные машины Linux, чтобы включить автоматизацию программного обеспечения и конфигурации.

На сайте GitHub можно найти эталонную реализацию расширения виртуальной машины.

Коммуникация

Поток информации от платформы к агенту осуществляется через два канала:

  • DVD-диск, подключаемый при загрузке, для развертывания виртуальных машин. Этот DVD-диск содержит файл конфигурации с открытым форматом виртуализации (OVF), содержащий все сведения о подготовке, отличные от пар ключей SSH.
  • Конечная точка TCP, которая предоставляет REST API, которая используется для получения конфигурации развертывания и топологии.

Требования

Тестирование подтверждает, что следующие системы работают с агентом виртуальной машины Azure Linux.

Примечание

Этот список может отличаться от утвержденных дистрибутивов Linux в Azure.

Publisher Распределение x64 ARM64
Сообщество Alma Linux AlmaLinux 8.х, 9.х 8.х, 9.х
Кредатив Debian 10.x 11.x
Kinvolk Flatcar Linux 3374.2.x 3374.2.x
Microsoft Azure Linux 2.x 2.x
Проект openSUSE openSUSE 12.3 Не поддерживаются
Oracle; Oracle Linux 6.4, 7.x, 8.x Не поддерживаются
Red Hat Red Hat Enterprise Linux 6.7, 7.x, 8.x, 9.x, 10.x 8.6, 9.0, 10.x
CIQ Рокки Linux 9.x 9.x
SUSE SLES 12.x, 15.x 15.x с пакетом обновления 4 (SP4)
Канонический Ubuntu (выпуски LTS) 18.04, 20.04, 22.04, 24.04, 26.04 20.04, 22.04, 24.04, 26.04

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

  • Агент работает над несколькими системами, чем перечисленные в документации. Однако мы не проверяем или не предоставляем поддержку дистрибутивов, которые не указаны в утвержденном списке. В частности, FreeBSD не поддерживается. Вы можете попробовать FreeBSD 8. При возникновении проблем вы можете открыть проблему в нашем репозитории GitHub , и мы могли бы помочь.

Агент Linux зависит от этих системных пакетов для правильной работы:

  • Python 2.6+
  • OpenSSL 1.0 и более поздней версии
  • OpenSSH 5.3 и более поздней версии
  • Служебные программы файловой системы: sfdisk, fdisk, mkfs, parted
  • Средства паролей: chpasswd, sudo
  • Средства обработки текста: sed, grep
  • Сетевые средства: ip-route
  • Поддержка ядра для монтирования файловых систем UDF

Убедитесь, что у виртуальной машины есть доступ к IP-адресу 168.63.129.16. Дополнительные сведения см. в разделе "Что такое IP-адрес 168.63.129.16?".

Установка

Поддерживаемый метод установки и обновления агента виртуальной машины Linux Azure использует пакет RPM или DEB из репозитория пакетов дистрибутива. Все поддерживаемые поставщики дистрибутивов интегрируют пакет Linux VM Agent для виртуальных машин Azure в свои образы и репозитории. Некоторые дистрибутивы Linux могут отключить функцию автоматического обновления агента виртуальной машины Linux Azure. Некоторые репозитории также могут содержать более старые версии. У старых версий могут возникнуть проблемы с современными расширениями, поэтому рекомендуется установить последнюю стабильную версию.

Необходимо убедиться, что агент виртуальной машины Linux Azure обновляется правильно. Рекомендуется использовать опцию AutoUpdate.Enabled=Y в файле /etc/waagent.conf, так как закомментирование этой опции также приводит к значению по умолчанию. Наличие AutoUpdate.Enabled=N не позволяет агенту виртуальной машины Azure Linux правильно обновляться.

Дополнительные параметры установки, такие как установка из источника или в пользовательские расположения или префиксы, см. в агенте виртуальной машины Microsoft Azure Linux. Кроме этих сценариев, мы не поддерживаем или рекомендуем обновить или переустановить агент виртуальной машины Azure Linux из источника.

Параметры командной строки

Флаги

  • verbose: увеличивает уровень детализации указанной команды.
  • force: пропускает интерактивное подтверждение для некоторых команд.

Команды

  • help: перечисляет поддерживаемые команды и флаги.

  • deprovision: пытается очистить систему и сделать ее снова пригодной для повторного задействования. Операция удаляет:

    • Все ключи узла SSH, если Provisioning.RegenerateSshHostKeyPair, y в файле конфигурации.
    • Nameserver конфигурация в /etc/resolv.conf.
    • Корневой пароль из /etc/shadow, если Provisioning.DeleteRootPassword указан y в файле конфигурации.
    • Кэшированные арендные записи DHCP-клиента.

    Клиент сбрасывает имя узла на localhost.localdomain.

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

    Депровижининг не гарантирует, что системный образ очищен от всех конфиденциальных сведений и пригоден для дальнейшего использования.

  • deprovision+user: выполняет все операции в deprovision и удаляет последнюю созданную учетную запись пользователя (полученную из /var/lib/waagent) и связанные данные. Используйте этот параметр при депровизовании образа, который ранее был подготовлен в Azure, чтобы его можно было захватить и повторно использовать.

  • version: отображает версию waagent.

  • serialconsole: настраивает GRUB для маркировки ttyS0, первого последовательного порта в качестве консоли загрузки. Этот параметр гарантирует, что журналы загрузки ядра отправляются в последовательный порт и становятся доступными для отладки.

  • daemon: запускает waagent в качестве управляющей программы для управления взаимодействием с платформой. Этот аргумент указывается для waagent в скрипте waagent init .

  • start: выполняет waagent в качестве фонового процесса.

Конфигурация

Файл конфигурации /etc/waagent.conf управляет действиями waagent . Ниже приведен пример файла конфигурации:

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

Параметры конфигурации имеют три типа: Boolean, Stringили Integer. Параметры конфигурации можно указать Boolean как y или n. Специальное ключевое слово None может использоваться для некоторых записей конфигурации типа строки.

Проверка.Настроена

Type: Boolean
Default: y

Этот параметр позволяет пользователю включать или отключать функцию предоставления в агенте. Допустимые значения — y и n. Если подготовка отключена, хост SSH и пользовательские ключи в образе сохраняются, а конфигурация в API подготовки Azure игнорируется.

Примечание

Параметр Provisioning.Enabled по умолчанию установлен на n в облачных образах Ubuntu, использующих cloud-init для подготовки.

Provisioning.DeleteRootPassword

Type: Boolean
Default: n

Если значение равно y, агент удаляет корневой пароль в файле /etc/shadow во время процесса подготовки.

Provisioning.RegenerateSshHostKeyPair

Type: Boolean
Default: y

Если значение равно y, агент удаляет все пары ключей узла SSH из /etc/ssh/ во время процесса подготовки, включая ECDSA, DSA и RSA. Агент создает новую пару ключей.

Настройте тип шифрования для новой пары ключей с помощью Provisioning.SshHostKeyPairType. Некоторые дистрибутивы повторно создают пары ключей SSH для любых отсутствующих типов шифрования при перезапуске управляющей программы SSH. Пример возникает после перезагрузки.

Provisioning.SshHostKeyPairType

Type: String
Default: rsa

Этот параметр можно задать для типа алгоритма шифрования, который поддерживает управляющая программа SSH на виртуальной машине. Обычно поддерживаются rsaзначения , dsaи ecdsa. Файл putty.exe в Windows не поддерживается ecdsa. Если вы планируете использовать putty.exe в Windows для подключения к развертыванию Linux, используйте rsa или dsa.

Provisioning.MonitorHostName

Type: Boolean
Default: y

Если значение равно y, waagent отслеживает виртуальную машину Linux на предмет изменения имени узла, как возвращается командой hostname. Затем Waagent автоматически обновляет конфигурацию сети в образе, чтобы отразить изменение. Чтобы отправить изменение имени на DNS-серверы, сеть перезапускается на виртуальной машине. Этот перезапуск приводит к краткой потере подключения к Интернету.

Настройка.ДекодироватьПользовательскиеДанные

Type: Boolean
Default: n

Если значение равно y, waagent декодирует CustomData из Base64.

Провайдинг.ВыполнитьПользовательскиеДанные

Type: Boolean
Default: n

Если значение y, waagent запускается CustomData после подготовки.

Provisioning.AllowResetSysUser

Type: Boolean
Default: n

Этот параметр позволяет сбросить пароль для системного пользователя. Он отключен по умолчанию.

Provisioning.PasswordCryptId

Type: String
Default: 6

Этот параметр указывает алгоритм, который crypt используется при создании хэша паролей. Допустимые значения:

  • 1: MD5
  • 2a:Blowfish
  • 5: SHA-256
  • 6: SHA-512

Provisioning.PasswordCryptSaltLength

Type: String
Default: 10

Этот параметр указывает длину случайной соли, используемой при создании хэша пароля.

ResourceDisk.Format

Type: Boolean
Default: y

Если значение равно y, waagent форматирует и монтирует предоставленный платформой диск ресурсов, если только тип файловой системы, запрошенный пользователем в ResourceDisk.Filesystem, не равен ntfs. Агент делает один раздел Linux (ID 83) доступным на диске. Этот раздел не отформатирован, если он может быть успешно подключен.

ResourceDisk.Filesystem

Type: String
Default: ext4

Этот параметр задает тип файловой системы для диска ресурсов. Поддерживаемые значения зависят от дистрибутива Linux. Если строка задана X, образ Linux должен содержать mkfs.X.

ResourceDisk.MountPoint

Type: String
Default: /mnt/resource

Этот параметр указывает путь, по которому подключен диск ресурса. Диск ресурса является временным диском и может быть очищен при депровижинге виртуальной машины.

ResourceDisk.MountOptions

Type: String
Default: None

Этот параметр указывает параметры подключения диска, передаваемые команде mount -o . Значение — это разделенный запятыми список значений, например nodev,nosuid. Дополнительные сведения см. на странице руководства mount(8).

ResourceDisk.EnableSwap

Type: Boolean
Default: n

Если этот параметр задан, агент создает файл буфера (/swapfile) на диске ресурса и добавляет его в пространство подкачки системы.

ResourceDisk.SwapSizeMB

Type: Integer
Default: 0

Этот параметр задает размер файла буфера в мегабайтах.

Logs.Verbose

Type: Boolean
Default: n

Если этот параметр задан, увеличивается детализация журнала. Waagent logs to /var/log/waagent.log и использует системные logrotate функции для смены журналов.

OS.EnableRDMA

Type: Boolean
Default: n

Если этот параметр установлен, агент пытается установить и загрузить драйвер ядра RDMA, соответствующий версии встроенного ПО на базовом оборудовании.

OS.RootDeviceScsiTimeout

Type: Integer
Default: 300

Этот параметр настраивает время ожидания SCSI в секундах на диске операционной системы и дисках данных. Если он не задан, используются системные значения по умолчанию.

OS.OpensslPath

Type: String
Default: None

Этот параметр можно использовать для указания альтернативного пути для двоичного файла opensl , используемого для криптографических операций.

HttpProxy.Host, HttpProxy.Port

Type: String
Default: None

Если этот параметр задан, агент использует этот прокси-сервер для доступа к Интернету.

Автообновление.Включено

Type: Boolean
Default: y

Включение или отключение автоматического обновления для обработки состояния цели. Значение по умолчанию — y.

Автоматический сбор журналов в агенте Azure Linux для гостевых систем

По состоянию на версию 2.7+ гостевой агент Azure Linux имеет функцию для автоматического сбора некоторых журналов и их отправки. Для этой функции в настоящее время требуется systemd. Он использует новый systemd срез, названный azure-walinuxagent-logcollector.slice, для управления ресурсами во время выполнения сбора.

Цель — упростить автономный анализ. Агент создает .zip файл журналов диагностики перед отправкой их на хост виртуальной машины. Инженерные команды и специалисты по поддержке могут получить файл для изучения проблем владельца виртуальной машины. Технические сведения о файлах, собираемых гостевым агентом Azure Linux, см. в файле azurelinuxagent/common/common/logcollector_manifests.py в репозитории GitHub агента.

Этот параметр можно отключить, изменив /etc/waagent.conf. Обновление Logs.Collect до n.

Облачные образы Ubuntu

Облачные образы Ubuntu используют cloud-init для выполнения многих задач конфигурации, которыми в противном случае управлял бы агент виртуальной машины Linux Azure. Применяются следующие различия:

  • Provisioning.Enabled по умолчанию задается в образах Ubuntu Cloud n, использующих cloud-init для выполнения задач подготовки.

  • Следующие параметры конфигурации не влияют на облачные образы Ubuntu, использующие cloud-init для управления ресурсным диском и областью подкачки.

    • ResourceDisk.Format
    • ResourceDisk.Filesystem
    • ResourceDisk.MountPoint
    • ResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMB

Чтобы настроить точку монтирования диска ресурса и раздел подкачки в образах Ubuntu Cloud во время подготовки, ознакомьтесь со следующими ресурсами: