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


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

Примечание.

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

Внимание

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

Служба "Настройка состояния службы автоматизации 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.

$importAzAutomationDscConfigurationSplat = @{
    SourcePath = 'C:\DscConfigs\TestConfig.ps1'
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    Published = $ture
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat

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

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

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

$startAzAutomationDscCompilationJobSplat = @{
    ConfigurationName = 'TestConfig'
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat

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

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

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

$registerAzAutomationDscNodeSplat = @{
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat

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

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

$registerAzAutomationDscNodeSplat = @{
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    AzureVMName = 'DscVm'
    ConfigurationMode = 'ApplyOnly'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```

You can also specify how often DSC checks the configuration state by using the
`ConfigurationModeFrequencyMins` property. For more information about DSC configuration settings,
see [Configuring the Local Configuration Manager][05].

```powershell
# Run a DSC check every 60 minutes
$registerAzAutomationDscNodeSplat = @{
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    AzureVMName = 'DscVm'
    ConfigurationModeFrequencyMins = 60
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```

## Assign a node configuration to a managed node

Now we can assign the compiled node configuration to the VM we want to configure.

```powershell
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat

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

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

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

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

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

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

# Display the most recent report
$reports[0]

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