Общие сведения об обработчике расширения Desired State Configuration в Azure

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

Основное использование расширения Конфигурации требуемого состояния Azure (DSC) для Windows PowerShell — загрузка виртуальной машины в службу служба автоматизации Azure конфигурации состояния (DSC). Эта служба предоставляет преимущества , включающие текущее управление конфигурацией виртуальной машины и интеграцию с другими операционными средствами, такими как Azure Monitor. Расширение можно использовать для регистрации виртуальных машин в службе и получения гибкого решения, которое работает в подписках Azure.

Расширение DSC можно запускать независимо от службы DSC службы автоматизации, но этот метод отправляет конфигурацию только на виртуальную машину. На виртуальной машине доступно только локальное непрерывное создание отчетов. Прежде чем включить расширение DSC, просмотрите доступные версии DSC и выберите версию, которая поддерживает требования к конфигурации.

В этой статье описывается, как использовать расширение DSC для подключения службы автоматизации или использовать его в качестве средства для назначения конфигураций виртуальным машинам с помощью пакета SDK Azure.

Доступные версии DSC

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

Версия Доступность Description
2.0 Общая доступность Конфигурация требуемого состояния 2.0 поддерживается для использования с функцией настройки компьютера Автоуправляемого управления Azure. Функция конфигурации компьютера объединяет функции обработчика расширений DSC, конфигурации состояния служба автоматизации Azure и наиболее часто запрашиваемые функции из отзывов клиентов. Конфигурация компьютера также включает поддержку гибридных компьютеров с помощью серверов с поддержкой Arc.
1.1 Общая доступность Если реализация не использует функцию конфигурации компьютера Автоуправляемого управления Azure, следует выбрать нужную конфигурацию состояния 1.1. Дополнительные сведения см. в разделе PSDesiredStateConfiguration версии 1.1.
3.0 Общедоступная предварительная версия Конфигурация требуемого состояния 3.0 доступна в общедоступной бета-версии. Эту версию следует использовать только с конфигурацией компьютера Azure или для непроизводственных сред для тестирования миграции из требуемой конфигурации состояния 1.1.

Необходимые компоненты

  • Локальный компьютер. Для взаимодействия с расширением Azure DSC необходимо использовать портал Azure или пакет SDK Azure PowerShell на локальном компьютере.

  • Гостевой агент: виртуальная машина Azure, подготовленная конфигурацией DSC, должна использовать операционную систему, которая поддерживает Windows Management Framework (WMF) 4.0 или более поздней версии. Полный список поддерживаемых версий операционной системы см. в журнале версий расширения Azure DSC.

Термины и основные понятия

В этой статье предполагается знакомство со следующими понятиями:

  • Конфигурация относится к документу конфигурации DSC.

  • Узел определяет целевой объект для конфигурации DSC. В этой статье узел всегда ссылается на виртуальную машину Azure.

  • Данные конфигурации хранятся в файле формата PowerShell DSC (PSD1), который содержит данные среды для конфигурации.

Архитектура

Расширение Azure DSC использует платформу расширения виртуальной машины Azure для доставки, принятия и отчета о конфигурациях DSC, работающих на виртуальных машинах Azure. Расширение DSC принимает документ конфигурации и набор параметров. Если файл не предоставлен, внедряется скрипт конфигурации по умолчанию с расширением. Скрипт конфигурации по умолчанию используется только для задания метаданных в локальном диспетчере конфигураций.

При первом вызове расширения он устанавливает версию WMF с помощью следующей логики:

  • Если операционная система виртуальной машины Azure является Windows Server 2016, действие не выполняется. потому что в Windows Server 2016 уже установлена последняя версия PowerShell.

  • wmfVersion Если задано свойство, устанавливается указанная версия WMF, если указанная версия не несовместима с операционной системой на виртуальной машине.

  • Если свойство не wmfVersion указано, устанавливается последняя соответствующая версия WMF.

Для процесса установки WMF требуется перезапуск. После перезапуска расширение скачивает ZIP-файл, указанный в свойстве modulesUrl , если он указан. Если это расположение находится в Хранилище BLOB-объектов Azure, можно указать маркер SAS в свойстве sasToken для доступа к файлу. После скачивания и распаковки ZIP-файла функция конфигурации, определенная в configurationFunction запусках для создания MOF-файла (MOF ). Затем расширение запускает Start-DscConfiguration -Force команду с помощью созданного MOF-файла. Расширение фиксирует выходные данные и записывает их в канал состояний Azure.

Скрипт конфигурации по умолчанию

Расширение Azure DSC включает скрипт конфигурации по умолчанию, который должен использоваться при подключении виртуальной машины к службе конфигурации состояния служба автоматизации Azure. Параметры сценария сопоставляются с настраиваемыми свойствами локального диспетчера конфигураций. Параметры скрипта см. в разделе "Скрипт конфигурации по умолчанию" в расширении "Конфигурация требуемого состояния" с помощью шаблонов Azure Resource Manager (ARM). Полный сценарий см. в шаблоне быстрого запуска Azure в GitHub.

регистрация конфигурации состояния служба автоматизации Azure

При использовании расширения Azure DSC для регистрации узла в службе конфигурации состояния служба автоматизации Azure необходимо указать следующие значения:

  • RegistrationUrl: https-адрес учетной записи служба автоматизации Azure.
  • RegistrationKey: общий секрет, используемый для регистрации узлов в службе.
  • NodeConfigurationName: имя конфигурации узла (MOF) для извлечения из службы для настройки роли сервера. Это значение — имя конфигурации узла, а не имя конфигурации.

Эти значения можно собрать из портал Azure или выполнить следующие команды в Windows PowerShell:

(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).Endpoint
(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).PrimaryKey

Имя конфигурации узла

NodeConfigurationName Для параметра обязательно укажите имя конфигурации узла, а не конфигурацию.

Конфигурация определена в скрипте, который используется для компиляции конфигурации узла (MOF-файла). Имя конфигурации узла всегда является именем конфигурации, за которой следует период . или localhost определенное имя компьютера.

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

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

Развертывание шаблона ARM

Наиболее распространенный подход к развертыванию расширения DSC — использовать шаблоны Azure Resource Manager. Дополнительные сведения и примеры включения расширения DSC в шаблоны ARM см. в разделе "Конфигурация требуемого состояния" с помощью шаблонов ARM.

Развертывание командлета PowerShell

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

Ниже приведены некоторые доступные командлеты PowerShell:

  • Командлет Publish-AzVMDscConfiguration принимает файл конфигурации, сканирует его на наличие ресурсов, зависимых от DSC, а затем создает ZIP-файл. ZIP-файл содержит конфигурацию и ресурсы DSC, которые необходимы для применения конфигурации. Командлет также может локально создать пакет с помощью -OutputArchivePath параметра. В противном случае командлет публикует ZIP-файл в служба хранилища BLOB-объектов, а затем защищает его с помощью маркера SAS.

    Скрипт конфигурации PowerShell (PS1), созданный командлетом, находится в ZIP-файле в корне папки архива. Предназначенная для ресурсов папка модуля находится в папке архива.

  • Командлет Set-AzVMDscExtension внедряет параметры, которые необходимы расширению DSC PowerShell, в объект конфигурации виртуальной машины.

  • Командлет Get-AzVMDscExtension извлекает состояние расширения DSC определенной виртуальной машины.

  • Командлет Get-AzVMDscExtensionStatus извлекает состояние конфигурации DSC, которое применил обработчик расширения DSC. Это действие можно выполнить на одной виртуальной машине или группе виртуальных машин.

  • Командлет Remove-AzVMDscExtension удаляет обработчик расширения из определенной виртуальной машины. Имейте в виду, что этот командлет не удаляет конфигурацию, удаляет WMF или не изменяет примененные параметры на виртуальной машине. Командлет удаляет только обработчик расширения.

Важные замечания

При работе с командлетами Azure Resource Manager следует учитывать несколько соображений.

  • Командлеты Azure Resource Manager выполняются синхронно.

  • Требуются несколько параметров, в том числе ResourceGroupName, VMName, ArchiveStorageAccountNameVersionи Location.

  • ArchiveResourceGroupName является необязательным параметром. Укажите этот параметр, если учетная запись хранения принадлежит другой группе ресурсов, отличной от той, в которой создается виртуальная машина.

  • Используйте AutoUpdate параметр для автоматического обновления обработчика расширений до последней версии, когда она доступна. После выпуска новой версии WMF возможна перезагрузка виртуальной машины из-за данного параметра.

Настройка с помощью командлетов PowerShell

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

В следующем коде показана простая конфигурация примера. Чтобы работать с этим примером, сохраните эту конфигурацию локально в файле скрипта iisInstall.ps1 .

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Следующие команды PowerShell помещает скрипт iisInstall.ps1 на указанную виртуальную машину. а также выполняют конфигурацию и возвращают сведения о состоянии.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Развертывание с помощью Azure CLI

Azure CLI можно использовать для развертывания расширения DSC на существующей виртуальной машине. В следующих примерах показано, как развернуть виртуальную машину в Windows.

Для виртуальной машины под управлением Windows используйте следующую команду:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

развертывание портал Azure

Чтобы настроить расширение DSC в портал Azure, выполните следующие действия.

  1. Перейдите к виртуальной машине.

  2. В разделе Параметры выберите "Расширения и приложения".

  3. В разделе "Расширения" нажмите кнопку "+ Добавить".

  4. Выберите PowerShell Desired State Configuration, а затем нажмите кнопку "Далее".

  5. Настройте следующие параметры для расширения DSC.

    Примечание.

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

    • Модули конфигурации или скрипт: (обязательно) Укажите модули конфигурации или файл скрипта для виртуальной машины.

      Модулям и скриптам конфигурации требуется PS1-файл, содержащий скрипт конфигурации, или ZIP-файл со скриптом конфигурации PS1 в корне. При использовании ZIP-файла все зависимые ресурсы должны быть включены в папки модулей в ZIP-файле. ZIP-файл можно создать с помощью командлета Publish-AzureVMDscConfiguration -OutputArchivePath, включенного в пакет SDK для Azure PowerShell. ZIP-файл передается в служба хранилища большого двоичного объекта пользователя и защищается маркером SAS.

    • Имя конфигурации, соответствующее модулю: (обязательно) Укажите этот параметр, чтобы включить несколько функций конфигурации в один файл скрипта PS1. Для этого параметра введите имя файла скрипта configuration .ps1, за которым следует косая черта \ , а затем имя функции конфигурации. Например, если файл скрипта PS1 имеет имя configuration.ps1 , а имя конфигурации — IisInstall, введите значение configuration.ps1\IisInstall параметра.

    • Аргументы конфигурации: если функция конфигурации принимает аргументы, введите значения с помощью формата argumentName1=value1,argumentName2=value2. Обратите внимание, что этот формат отличается от формата, используемого для указания аргументов конфигурации в командлетах PowerShell или шаблонах ARM.

      Примечание.

      Аргументы конфигурации можно определить в скрипте конфигурации по умолчанию.

    • Файл PSD1 конфигурации. Если для конфигурации требуется файл данных конфигурации в формате PSD1, используйте этот параметр, чтобы выбрать файл данных и отправить его в служба хранилища пользовательского BLOB-объекта. Файл данных конфигурации защищен маркером SAS в служба хранилища BLOB-объектов.

    • Версия WMF: укажите версию Windows Management Framework для установки на виртуальной машине. Если выбрать последнюю версию WMF, которая является значением по умолчанию, система устанавливает последнюю версию WMF. Другие возможные значения включают 4.0, 5.0 и 5.1. Возможные значения подвергаются обновлениям.

    • Сбор данных. Включите этот параметр, если требуется расширение DSC для сбора данных телеметрии о виртуальной машине. Дополнительные сведения см. в записи блога Azure DSC Extension Data Collection (Коллекция данных расширения DSC Azure).

    • Версия: (обязательно) Укажите версию расширения DSC для установки. Сведения о версиях см . в журнале версий расширения Azure DSC.

    • Дополнительная версия автоматического обновления: этот параметр сопоставляется с параметром AutoUpdate в командлетах. Настройте этот параметр, чтобы включить расширение DSC для автоматического обновления до последней версии во время установки. Да указывает обработчику расширения DSC использовать последнюю доступную версию. Нет (по умолчанию) принудительной установки версии, указанной в параметре версии .

  6. После настройки параметров нажмите кнопку "Проверить и создать", а затем нажмите кнопку "Создать".

Журналы расширений DSC

Журналы расширения Azure DSC можно просмотреть на виртуальной машине в разделе C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Следующие шаги