Настройка требуемого состояния компьютеров
Примечание.
служба автоматизации Azure конфигурация состояния будет прекращена 30 сентября 2027 г.Конфигурация компьютера Azure по этой дате. Дополнительные сведения см. в публикации блога. Служба конфигурации компьютера Azure объединяет функции расширения DSC, служба автоматизации Azure конфигурации состояния и наиболее часто запрашиваемые функции из отзывов клиентов. Конфигурация компьютера Azure также включает поддержку гибридных компьютеров с помощью серверов с поддержкой Arc.
Внимание
служба автоматизации Azure DSC для Linux вышел на пенсию 30 сентября 2023 года. Дополнительные сведения см. в объявлении о выпуске.
Служба "Настройка состояния службы автоматизации Azure" позволяет задавать конфигурации для серверов и гарантировать, что спустя время они будут находиться в указанном состоянии.
- Подключение виртуальной машины для управления с помощью DSC службы автоматизации Azure.
- Передача конфигурации в службу автоматизации Azure.
- Компиляция конфигурации в конфигурации узла
- Назначение конфигурации узла управляемому узлу.
- Проверка состояния соответствия управляемого узла
В этом руководстве используется простая конфигурация DSC, которая гарантирует, что на виртуальной машине установлены службы IIS.
Необходимые компоненты
- Учетная запись службы автоматизации Azure. Дополнительные сведения об учетной записи службы автоматизации и ее требованиях см. в статье Общие сведения о проверке подлинности учетной записи службы автоматизации Azure.
- Виртуальная машина Azure Resource Manager (не классическая) под управлением Windows Server 2008 R2 или более поздней версии. Для ее создания воспользуйтесь статьей Краткое руководство. Создание виртуальной машины Windows на портале Azure.
- Azure PowerShell 3.6.0 или более поздней версии. Чтобы узнать версию, выполните команду
Get-Module -ListAvailable Az
. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. - Знакомство с платформой Desired State Configuration (DSC) Дополнительную информацию о DSC см. в статье Общие сведения о службе настройки требуемого состояния Windows PowerShell.
Поддержка частичных конфигураций
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]
Следующие шаги
- Чтобы приступить к работе со службой State Configuration службы автоматизации Azure, см. сведения в этой статье.
- Сведения о том, как включить узлы, см. в статье Включение службы State Configuration службы автоматизации Azure.
- Сведения о компилировании конфигураций DSC, которые затем можно назначить целевым узлам, см. в статье Компилирование конфигураций DSC в службе State Configuration службы автоматизации Azure.
- Пример использования служба автоматизации Azure State Configuration в конвейере непрерывного развертывания см. в статье "Настройка непрерывного развертывания с помощью Шоколада".
- Сведения о ценах см. на странице с расценками для службы настройки состояния службы автоматизации Azure.
- Справочник по командлетам PowerShell см. в документации по Az.Automation.