Поделиться через


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

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

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

Подготовка образа

  • Создает учетную запись пользователя
  • Настройка типов проверки подлинности SSH
  • Развертывает открытые ключи SSH и пары ключей
  • Настройка имени узла
  • Публикация имени узла DNS платформы
  • Сообщает отпечаток ключа узла SSH на платформу
  • Управление диском ресурсов
  • Форматирование и подключение диска ресурсов
  • Настройка пространства подкачки

Сеть

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

Ядро

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

Диагностика

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

Развертывания System Center диспетчер виртуальных машин

  • Обнаруживает и загружает агент диспетчер виртуальных машин для Linux при запуске в среде System Center диспетчер виртуальных машин 2012 R2

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

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

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

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

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

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

Требования

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

Примечание.

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

Распределение x64 ARM64
AlmaLinux 9.x+ 9.x+
Debian 10+ 11.x+
Flatcar Linux 3374.2.x+ 3374.2.x+
Azure Linux 2.x 2.x
openSUSE 12.3+ Не поддерживаются
Oracle Linux 6.4+, 7.x+, 8.x+ Не поддерживаются
Red Hat Enterprise Linux 6.7+, 7.x+, 8.x+, 9.x+ 8.6+, 9.0+
Rocky Linux 9.x+ 9.x+
SLES 12.x+, 15.x+ 15.x SP4+
Ubuntu (выпуски LTS) 18.04+, 20.04+, 22.04+, 24.04+ 20.04+, 22.04+, 24.04+

Внимание

RHEL/Oracle Linux 6.10 — это единственная версия RHEL/OL 6 с поддержкой расширенного жизненного цикла. Расширенное обслуживание заканчивается 30 июня 2024 года.

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

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

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

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

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

Установка

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

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

Provisioning.Enabled

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, например после перезагрузки.

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

Provisioning.DecodeCustomData;

Type: Boolean
Default: n

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

Provisioning.ExecuteCustomData.

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, на mkfs.X образе Linux должно присутствовать.

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 журналы в /var/log/waagent.log и используют системные logrotate функции для смены журналов.

OS.EnableRDMA

Type: Boolean
Default: n

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

ОС. RootDeviceScsiTimeout

Type: Integer
Default: 300

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

ОС. OpenslPath

Type: String
Default: None

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

HttpProxy.Host, HttpProxy.Port

Type: String
Default: None

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

AutoUpdate.Enabled

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

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

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

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