Настройка требуемого состояния компьютеров

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

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

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

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

Поддержка частичных конфигураций

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

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

Дополнительную информацию о совместном управлении серверами с применением конфигурации как кода см. в статье Общие сведения о роли DSC в конвейере CI/CD.

Вход в Azure

Войдите в подписку Azure с помощью командлета Connect-AzAccount и следуйте инструкциям на экране.

Connect-AzAccount

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

В текстовом редакторе введите следующий код и сохраните его локально в виде файла TestConfig.ps1.

configuration TestConfig {
   Node WebServer {
      WindowsFeature IIS {
         Ensure               = 'Present'
         Name                 = 'Web-Server'
         IncludeAllSubFeature = $true
      }
   }
}

Примечание.

Имена конфигураций в служба автоматизации Azure должны быть ограничены не более чем 100 символами.

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

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

 Import-AzAutomationDscConfiguration -SourcePath 'C:\DscConfigs\TestConfig.ps1' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Published

Компиляция конфигурации в конфигурации узла

Прежде чем назначать конфигурацию DSC узлу, ее нужно скомпилировать в конфигурации узла. См. статью Конфигурации DSC.

Для компиляции конфигурации TestConfig в конфигурацию узла TestConfig.WebServer, размещенную в учетной записи службы автоматизации, выполните командлет Start-AzAutomationDscCompilationJob.

Start-AzAutomationDscCompilationJob -ConfigurationName 'TestConfig' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount'

Регистрация виртуальной машины, управляемой с помощью настройки состояния

С помощью службы "Настройка состояния службы автоматизации Azure" можно управлять виртуальными машинами Azure (классическими или Resource Manager), локальными виртуальными машинами, компьютерами Linux, виртуальными машинами AWS и локальными физическими компьютерами. В этом разделе рассматривается регистрация только виртуальных машин Azure Resource Manager. Дополнительные сведения о регистрации компьютеров других типов см. в статье Подключение компьютеров для управления с помощью Azure Automation DSC.

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

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm'

Указание параметров режима конфигурации

Чтобы зарегистрировать виртуальную машину как управляемый узел и указать параметры конфигурации, выполните командлет Register-AzAutomationDscNode. Например, вы можете указать, что состояние виртуальной машины должно применяться только один раз, назначив значение ApplyOnly свойству ConfigurationMode. Тогда State Configuration не будет повторно применять конфигурацию после первоначальной проверки.

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationMode 'ApplyOnly'

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

# Run a DSC check every 60 minutes
Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationModeFrequencyMins 60

Назначение конфигурации узла управляемому узлу.

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

# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'

# Assign the node configuration to the DSC node
Set-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeConfigurationName 'TestConfig.WebServer' -NodeId $node.Id

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

Проверка состояния соответствия управляемого узла

Отчеты о состоянии соответствия управляемого узла можно получить с помощью командлета Get-AzAutomationDscNodeReport.

# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'

# Get an array of status reports for the DSC node
$reports = Get-AzAutomationDscNodeReport -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeId $node.Id

# Display the most recent report
$reports[0]

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