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

Примечание.

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

Внимание

Ссылки на навигацию "Добавление", "Создание" и "Коллекция" будут удалены с портала 31 марта 2025 г.

Внимание

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

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

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

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

Предварительные требования

Примечание.

Windows Server 2008 и Windows Server 2008 R2 достигли окончания поддержки (EOS). Дополнительные сведения см. в статьях Окончание поддержки Windows Server 2008 и Windows Server 2008 R2 и Выполнение обновления на месте до Windows Server 2016, 2019, 2022 или 2025. Просмотрите, как вы используете операционную систему, и планируйте её обновления и миграции соответственно.

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

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

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

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

Вход в Azure

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

Connect-AzAccount

Создание и отправка конфигурации в Azure Automation

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

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

Примечание.

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

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

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

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

Скомпилируйте конфигурацию в конфигурацию узла

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

Для компиляции конфигурации , вызовите командлет TestConfig для создания конфигурации узла под названием TestConfig.WebServer в вашей учетной записи автоматизации.

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

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

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

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

$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 минут. Сведения об изменении интервала проверки соответствия см. в разделе Configuring local Configuration Manager.

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

Отчеты о состоянии соответствия управляемого узла можно получить с помощью командлета 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]

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