Бөлісу құралы:


Включение State Configuration службы автоматизации Azure

Примечание.

служба автоматизации Azure конфигурация состояния будет прекращена 30 сентября 2027 г.Конфигурация компьютера Azure по этой дате. Дополнительные сведения см. в публикации блога. Служба конфигурации компьютера Azure объединяет функции расширения DSC, служба автоматизации Azure конфигурации состояния и наиболее часто запрашиваемые функции из отзывов клиентов. Конфигурация компьютера Azure также включает поддержку гибридных компьютеров с помощью серверов с поддержкой Arc.

Внимание

служба автоматизации Azure DSC для Linux вышел на пенсию 30 сентября 2023 года. Дополнительные сведения см. в объявлении о выпуске.

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

Включение виртуальных машин Azure

Служба State Configuration службы автоматизации Azure позволяет легко подключать виртуальные машины Azure для управления конфигурацией с помощью портала Azure, шаблонов Azure Resource Manager или PowerShell. Расширение конфигурации требуемого состояния виртуальной машины Azure автоматически регистрирует виртуальную машину с служба автоматизации Azure конфигурацией состояния. Так как расширение Azure выполняется асинхронно, действия по отслеживанию хода выполнения описаны в разделе Проверка состояния виртуальной машины.

Примечание.

При развертывании DSC на узле Linux используется папка /tmp. Модули, такие как nxautomation, временно загружаются для проверки перед установкой в соответствующих расположениях. Чтобы обеспечить правильную установку модулей, агенту Log Analytics для Linux требуются разрешения на чтение и запись в папке /tmp. Агент Log Analytics для Linux запускается от имени пользователя omsagent. Чтобы предоставить >пользователю разрешение omsagent на запись, выполните команду setfacl -m u:omsagent:rwx /tmp.

Подключение виртуальной машины с помощью портала Azure

Чтобы подключить виртуальную машину Azure к State Configuration с помощью портала Azure, выполните следующие действия:

  1. Перейдите к учетной записи службы автоматизации Azure, в которой нужно подключить виртуальные машины.
  2. На странице "Конфигурация состояния" выберите вкладку "Узлы" и нажмите кнопку "Добавить".
  3. Выберите виртуальную машину.
  4. Если на компьютере не установлено требуемое расширение состояния PowerShell, а состояние питания запущено, нажмите кнопку "Подключить".
  5. В разделе Регистрация введите значения Local Configuration Manager для расширения PowerShell DSC, необходимые для вашего варианта использования. При необходимости можно ввести конфигурацию узла для назначения виртуальной машине.

подключение виртуальной машины

Подключение виртуальной машины с использованием шаблонов Azure Resource Manager

Вы можете установить виртуальную машину и подключить ее к State Configuration с помощью шаблонов Azure Resource Manager. Пример шаблона для подключения существующей виртуальной машины к State Configuration см. в статье Сервер под управлением службы Desired State Configuration. Если вы управляете масштабируемым набором виртуальных машин, см. пример шаблона в конфигурации масштабируемого набора виртуальных машин, управляемой служба автоматизации Azure.

Подключение компьютеров с помощью PowerShell

Чтобы подключить виртуальные машины к State Configuration, также можно использовать командлет Register-AzAutomationDscNode в PowerShell.

Примечание.

В настоящее время командлет Register-AzAutomationDscNode реализован только для компьютеров под управлением Windows, так как он запускает только расширение Windows.

Регистрация виртуальных машин в подписках Azure

Лучший способ регистрации виртуальных машин из других подписок Azure — использовать расширение DSC в шаблоне развертывания для Azure Resource Manager. Примеры приведены в статье Расширение Desired State Configuration (DSC) с использованием шаблонов Azure Resource Manager.

Использование метаконфигурации DSC для регистрации гибридных компьютеров

Вы можете безопасно включить компьютеры для учетной записи служба автоматизации Azure с помощью метаконфигурации DSC. Протоколы, реализованные в DSC, используют сведения из метаконфигурации для проверки подлинности в служба автоматизации Azure state Configuration. Узел регистрируется в службе по URL-адресу регистрации и проходит проверку подлинности с помощью ключа регистрации. Во время регистрации узел DSC и служба DSC согласовывают уникальный сертификат для узла, который будет использоваться для проверки подлинности на сервере после регистрации. Этот процесс исключает возможность подмены подключенных узлов друг другом, например, если один из узлов взломан и находится под контролем злоумышленника. После регистрации ключ регистрации снова не используется для проверки подлинности и удаляется из узла.

Данные, необходимые для протокола регистрации State Configuration, можно найти в подразделе Ключи раздела Параметры учетной записи на портале Azure.

URL-адрес и ключи службы автоматизации Azure

  • URL-адрес регистрации соответствует значению поля "URL-адрес" на странице "Ключи".
  • Ключ регистрации — это значение поля Первичный ключ доступа или Вторичный ключ доступа на странице "Ключи". Можно использовать любой из этих ключей.

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

Создание метаконфигураций DSC

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

Примечание.

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

Локальный диспетчер конфигураций (LCM) управляет поддержкой прокси-сервера для метаконфигурации. LCM работает на всех целевых узлах и отвечает за вызов ресурсов конфигураций, включенных в скрипт метаконфигурации DSC. Вы можете включить поддержку прокси-сервера в метаконфигурации, включив в блоках ConfigurationRepositoryWeb, ResourceRepositoryWebи ReportServerWeb необходимые определения свойств ProxyURL и ProxyCredential. Пример параметра URL-адреса — ProxyURL = "http://172.16.3.6:3128";. Объекту PSCredential присвоено свойство ProxyCredential, как описано в статье об управлении учетными данными в службе автоматизации Azure.

Создание метаконфигураций DSC с помощью конфигурации DSC

  1. Откройте текстовый редактор, например Visual Studio Code (VS Code), в качестве администратора на компьютере в локальной среде. На этом компьютере должна быть установлена последняя версия WMF 5 .

  2. Локально выполните следующий скрипт. Этот сценарий содержит конфигурацию PowerShell DSC для создания метаконфигураций и команду, запускающую этот процесс.

    Примечание.

    Имена конфигурации узла State Configuration чувствительны к регистру на портале Azure. Если регистр не соответствует, узел не будет отображаться на вкладке Узлы.

    # The DSC configuration that will generate metaconfigurations
    [DscLocalConfigurationManager()]
    Configuration DscMetaConfigs
    {
         param
         (
             [Parameter(Mandatory=$True)]
             [String]$RegistrationUrl,
    
             [Parameter(Mandatory=$True)]
             [String]$RegistrationKey,
    
             [Parameter(Mandatory=$True)]
             [String[]]$ComputerName,
    
             [Int]$RefreshFrequencyMins = 30,
    
             [Int]$ConfigurationModeFrequencyMins = 15,
    
             [String]$ConfigurationMode = 'ApplyAndMonitor',
    
             [String]$NodeConfigurationName,
    
             [Boolean]$RebootNodeIfNeeded= $False,
    
             [String]$ActionAfterReboot = 'ContinueConfiguration',
    
             [Boolean]$AllowModuleOverwrite = $False,
    
             [Boolean]$ReportOnly
         )
    
         if(!$NodeConfigurationName -or $NodeConfigurationName -eq '')
         {
             $ConfigurationNames = $null
         }
         else
         {
             $ConfigurationNames = @($NodeConfigurationName)
         }
    
         if($ReportOnly)
         {
             $RefreshMode = 'PUSH'
         }
         else
         {
             $RefreshMode = 'PULL'
         }
    
         Node $ComputerName
         {
             Settings
             {
                 RefreshFrequencyMins           = $RefreshFrequencyMins
                 RefreshMode                    = $RefreshMode
                 ConfigurationMode              = $ConfigurationMode
                 AllowModuleOverwrite           = $AllowModuleOverwrite
                 RebootNodeIfNeeded             = $RebootNodeIfNeeded
                 ActionAfterReboot              = $ActionAfterReboot
                 ConfigurationModeFrequencyMins = $ConfigurationModeFrequencyMins
             }
    
             if(!$ReportOnly)
             {
             ConfigurationRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl          = $RegistrationUrl
                     RegistrationKey    = $RegistrationKey
                     ConfigurationNames = $ConfigurationNames
                 }
    
                 ResourceRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl       = $RegistrationUrl
                     RegistrationKey = $RegistrationKey
                 }
             }
    
             ReportServerWeb AzureAutomationStateConfiguration
             {
                 ServerUrl       = $RegistrationUrl
                 RegistrationKey = $RegistrationKey
             }
         }
    }
    
    # Create the metaconfigurations
    # NOTE: DSC Node Configuration names are case sensitive in the portal.
    # TODO: edit the below as needed for your use case
    $Params = @{
         RegistrationUrl = '<fill me in>';
         RegistrationKey = '<fill me in>';
         ComputerName = @('<some VM to onboard>', '<some other VM to onboard>');
         NodeConfigurationName = 'SimpleConfig.webserver';
         RefreshFrequencyMins = 30;
         ConfigurationModeFrequencyMins = 15;
         RebootNodeIfNeeded = $False;
         AllowModuleOverwrite = $False;
         ConfigurationMode = 'ApplyAndMonitor';
         ActionAfterReboot = 'ContinueConfiguration';
         ReportOnly = $False;  # Set to $True to have machines only report to AA DSC but not pull from it
    }
    
    # Use PowerShell splatting to pass parameters to the DSC configuration being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    DscMetaConfigs @Params
    
  3. Укажите ключ регистрации и URL-адрес учетной записи службы автоматизации, а также имена компьютеров, которые необходимо включить. Все остальные параметры являются необязательными. Чтобы найти ключ регистрации и URL-адрес регистрации для учетной записи службы автоматизации, см. статью "Использование метаконфигурации DSC для регистрации гибридных компьютеров".

  4. Если вы хотите, чтобы компьютеры передавали сведения о состоянии DSC в службу State Configuration службы автоматизации Azure, не извлекая конфигурацию или модули PowerShell, присвойте параметру ReportOnly значение Тrue.

  5. Если ReportOnly параметр не задан, компьютеры сообщают о состоянии DSC для служба автоматизации Azure конфигурации состояния и настройки извлечения или модулей PowerShell. Задайте соответствующие параметры в блоках ConfigurationRepositoryWeb, ResourceRepositoryWeb и ReportServerWeb.

  6. Выполните скрипт. В рабочем каталоге появится папка DscMetaConfigs, содержащая метаконфигурации PowerShell DSC для подключаемых компьютеров (с правами администратора).

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

Создание метаконфигураций DSC с помощью командлетов службы автоматизации Azure

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

  • Значения по умолчанию LCM соответствуют вашему варианту использования
  • Вы хотите включить как вытягивание компьютеров, так и отчет в конфигурацию состояния служба автоматизации Azure

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

  1. Откройте консоль PowerShell или VS Code в качестве администратора на компьютере в локальной среде.

  2. Подключитесь к Azure Resource Manager с помощью командлета Connect-AzAccount.

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

    # Define the parameters for Get-AzAutomationDscOnboardingMetaconfig using PowerShell Splatting
    $Params = @{
        ResourceGroupName = 'ContosoResources' # The Resource Group that contains your Azure Automation account
        AutomationAccountName = 'ContosoAutomation'; # The Azure Automation account where you want to onboard the node
        ComputerName = @('web01', 'web02', 'sql01'); # The computers to generate the metaconfigurations for
        OutputFolder = "$env:UserProfile\Desktop\";
    }
    # Use PowerShell splatting to pass parameters to the Azure Automation cmdlet being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    Get-AzAutomationDscOnboardingMetaconfig @Params
    
  4. В рабочем каталоге появится папка DscMetaConfigs, содержащая метаконфигурации PowerShell DSC для подключаемых компьютеров (с правами администратора).

    Set-DscLocalConfigurationManager -Path $env:UserProfile\Desktop\DscMetaConfigs
    

Подключение физических или виртуальных компьютеров Windows

Вы можете подключить серверы Windows, работающие локально или в других облачных средах (включая экземпляры AWS EC2), к службе State Configuration службы автоматизации Azure. У серверов должен быть исходящий доступ к Azure.

  1. Убедитесь, что на компьютерах установлена последняя версия WMF 5, чтобы их можно было подключить к State Configuration. Кроме того, WMF 5 должен быть установлен на компьютере, который вы используете для включения компьютеров.

  2. Чтобы создать папку, содержащую необходимые метаконфигурации DSC, следуйте указаниям в разделе "Создание метаконфигурации DSC".

  3. Используйте следующий командлет, чтобы удаленно применить метаконфигурации PowerShell DSC к компьютерам, которые нужно подключить к State Configuration.

    Set-DscLocalConfigurationManager -Path C:\Users\joe\Desktop\DscMetaConfigs -ComputerName MyServer1, MyServer2
    
  4. Если вы не можете удаленно применить метаконфигурации PowerShell DSC, скопируйте папку метаконфигурации на включенные компьютеры . Затем добавьте код для вызова Set-DscLocalConfigurationManager локально на компьютерах.

  5. С помощью портала Azure или командлетов убедитесь, что компьютеры отображаются как узлы State Configuration, зарегистрированные в вашей учетной записи службы автоматизации Azure.

Подключение компьютеров или виртуальных машин Linux

Вы можете подключить к State Configuration серверы Linux, работающие локально или в других облачных средах. У серверов должен быть исходящий доступ к Azure.

  1. Убедитесь, что на компьютерах, которые будут подключены к State Configuration, установлена последняя версия расширения PowerShell Desired State Configuration для Linux.

  2. Если значения Local Configuration Manager для расширения PowerShell DSC по умолчанию соответствуют требуемым, а подключаемые компьютеры должны извлекать данные из службы State Configuration и передавать их в нее, сделайте следующее:

    • На каждом компьютере Linux, который нужно подключить, используйте Register.py, чтобы выполнить подключение с использованием значений Local Configuration Manager для расширения PowerShell DSC по умолчанию.

      /opt/microsoft/dsc/Scripts/Register.py <Automation account registration key> <Automation account registration URL>

    • Чтобы найти ключ регистрации и URL-адрес регистрации для учетной записи службы автоматизации, см. статью "Использование метаконфигурации DSC для регистрации гибридных компьютеров".

  3. Если значения Local Configuration Manager для расширения PowerShell DSC по умолчанию не соответствуют вашему варианту использования или вы хотите подключить компьютеры, которые передают данные только в службу State Configuration службы автоматизации Azure, выполните шаги 4–7. В противном случае сразу перейдите к шагу 7.

  4. Создайте папку, содержащую необходимые метаконфигурации DSC, выполнив инструкции из раздела Создание метаконфигураций DSC.

  5. Убедитесь, что на компьютере, который используется для подключения к State Configuration, установлена последняя версия WMF 5.

  6. Используйте следующий код, чтобы удаленно применить метаконфигурации PowerShell DSC к компьютерам, которые нужно подключить к State Configuration.

    $SecurePass = ConvertTo-SecureString -String '<root password>' -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential 'root', $SecurePass
    $Opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    # need a CimSession for each Linux machine to onboard
    $Session = New-CimSession -Credential $Cred -ComputerName <your Linux machine> -Port 5986 -Authentication basic -SessionOption $Opt
    Set-DscLocalConfigurationManager -CimSession $Session -Path C:\Users\joe\Desktop\DscMetaConfigs
    
  7. Если вы не можете применить метаконфигурации PowerShell DSC удаленно, скопируйте на компьютеры Linux метаконфигурации, соответствующие удаленным компьютерам, из папки, которая описана в шаге 4.

  8. Добавьте код для вызова Set-DscLocalConfigurationManager.py локально на каждом компьютере Linux, чтобы подключить его к State Configuration.

    /opt/microsoft/dsc/Scripts/SetDscLocalConfigurationManager.py -configurationmof <path to metaconfiguration file>

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

Повторная регистрация узла

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

  • Обновление сертификата. Для версий Windows Server до Windows Server 2019 каждый узел автоматически согласовывает уникальный сертификат для аутентификации по истечении одного года. Если срок действия сертификата истекает без продления действия, узел не сможет связаться со службой автоматизации Azure и помечается как Unresponsive. В настоящее время протокол регистрации PowerShell DSC не может автоматически обновлять сертификаты при истечении срока действия, и необходимо повторно зарегистрировать узлы через год. Перед повторной регистрацией убедитесь, что на каждом узле выполняется WMF 5 RTM.

    Новый сертификат создается и используется при повторной регистрации 90 дней или меньше с момента истечения срока действия сертификата или в любой момент после истечения срока действия сертификата. Эта проблема устранена в Windows Server 2019 и более поздних версиях.

  • Изменения в значениях LCM для DSC. Возможно, потребуется изменить значения LCM для PowerShell DSC, заданные во время начальной регистрации узла, например ConfigurationMode. Сейчас эти значения агента DSC можно изменять только с помощью повторной регистрации. Одним из исключений является значение конфигурации узла. Это значение можно изменить непосредственно в служба автоматизации Azure DSC.

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

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

State Configuration позволяет легко подключать виртуальные машины Azure для управления конфигурацией. Расширение DSC для виртуальных машин Azure используется для регистрации виртуальных машин в службе "Настройка состояния службы автоматизации Azure". Так как с виртуальными машинами Azure расширение Desired State Configuration работает асинхронно, важно отслеживать ход выполнения и устранять неполадки.

Примечание.

При любом способе подключения виртуальных машин Azure Windows к State Configuration, в котором используется расширение Desired State Configuration виртуальной машины Azure, может потребоваться до часа, пока служба автоматизации Azure не покажет виртуальные машины как зарегистрированные. Эта задержка возникает из-за установки WMF 5 на виртуальной машине с помощью расширения Desired State Configuration виртуальной машины Azure, которое требуется для подключения виртуальных машин к State Configuration.

Чтобы просмотреть состояние расширения Desired State Configuration виртуальной машины Azure:

  1. На портале Azure перейдите к подключаемой виртуальной машине.
  2. Выберите Расширения в разделе Параметры.
  3. Затем выберите DSC или DSCForLinux в зависимости от операционной системы.
  4. Дополнительные сведения см. в разделе "Просмотр подробного состояния".

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