Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Cлужба автоматизации Azure State Configuration будет прекращена 30 сентября 2027 г., перейдите на Azure Machine Configuration к этой дате. Дополнительные сведения см. в анонсе блога. Служба конфигурации компьютера Azure объединяет функции расширения DSC, Cлужба автоматизации Azure State Configuration и наиболее часто запрашиваемые функции из отзывов клиентов. Конфигурация машины Azure также включает поддержку гибридных машин через серверы с функцией Arc.
Внимание
Ссылки на навигацию "Добавление", "Создание" и "Коллекция" будут удалены с портала 31 марта 2025 г.
Внимание
Cлужба автоматизации Azure DSC для Linux вышел на пенсию 30 сентября 2023 года. Дополнительные сведения см. в объявлении о выпуске.
Конфигурации Desired State Configuration (DSC) можно компилировать в Cлужба автоматизации Azure State Configuration следующим образом:
служба компиляции конфигурации состояния Azure
- Самый простой способ с интерактивным пользовательским интерфейсом
- Легко отслеживаемое состояние задания.
Windows PowerShell
- Вызов Windows PowerShell на локальной рабочей станции или службе сборки
- Интеграция с конвейером тестирования разработки
- Предоставление значений сложных параметров
- Работа с данными узла и с данными, отличными от данных узла, в большом масштабе
- Значительное повышение производительности
Вы также можете использовать шаблоны Azure Resource Manager с расширением Azure Desired State Configuration (DSC) для отправки конфигураций на виртуальные машины Azure. Расширение DSC Azure использует платформу агента виртуальных машин Azure для доставки, принятия и создания отчетов о конфигурациях DSC, работающих на Azure виртуальных машинах. Сведения о компиляции с помощью шаблонов Azure Resource Manager см. в расширении Desired State Configuration с помощью шаблонов Azure Resource Manager.
Компиляция конфигурации DSC в Azure State Configuration
Портал
- В учетной записи службы автоматизации выберите конфигурацию состояния (DSC).
- Выберите на вкладке "Конфигурации" , а затем выберите имя конфигурации для компиляции.
- Выберите Компилировать.
- Если конфигурация не имеет параметров, вас попросят подтвердить, хотите ли вы ее скомпилировать. Если конфигурация имеет параметры, откроется панель Конфигурация компиляции, чтобы предоставить значения параметров.
- Откроется страница "Задание компиляции", на которой можно будет отследить состояние задания компиляции. Эту страницу можно также использовать для отслеживания конфигураций узлов (документов конфигурации MOF), размещенных на сервере вытягивания Cлужба автоматизации Azure State Configuration.
Azure PowerShell
Чтобы начать компиляцию с Windows помощью PowerShell, можно использовать Start-AzAutomationDscCompilationJob. В следующем примере кода начинается компилирование конфигурации DSC под именем SampleConfig.
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
Start-AzAutomationDscCompilationJob возвращает объект задания компилирования, с помощью которого вы можете отслеживать состояние задания. Затем можно использовать этот объект задания компиляции с Get-AzAutomationDscCompilationJob, чтобы определить состояние задания компиляции, и Get-AzAutomationDscCompilationJobOutput, чтобы просмотреть его потоки (выходные данные). Следующий пример запускает компиляцию конфигурации SampleConfig, ожидает завершения, а затем отображает потоки.
$CompilationJob = Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
while($null -eq $CompilationJob.EndTime -and $null -eq $CompilationJob.Exception)
{
$CompilationJob = $CompilationJob | Get-AzAutomationDscCompilationJob
Start-Sleep -Seconds 3
}
$CompilationJob | Get-AzAutomationDscCompilationJobOutput –Stream Any
Объявление базовых параметров
Объявление параметров в конфигурациях DSC, включая типы параметров и свойства, работает так же, как и в модулях Runbook Cлужба автоматизации Azure. Дополнительные сведения о параметрах Runbook см. в статье Starting a Runbook в Cлужба автоматизации Azure.
В следующем примере используются параметры FeatureName и IsPresent для определения значений свойств в конфигурации узла ParametersExample.sample, созданной во время компиляции.
Configuration ParametersExample
{
param(
[Parameter(Mandatory=$true)]
[string] $FeatureName,
[Parameter(Mandatory=$true)]
[boolean] $IsPresent
)
$EnsureString = 'Present'
if($IsPresent -eq $false)
{
$EnsureString = 'Absent'
}
Node 'sample'
{
WindowsFeature ($FeatureName + 'Feature')
{
Ensure = $EnsureString
Name = $FeatureName
}
}
}
Вы можете компилировать конфигурации DSC, использующие базовые параметры, на портале Cлужба автоматизации Azure State Configuration или с помощью Azure PowerShell.
Портал
Чтобы ввести значения параметров на портале, нажмите кнопку Компилировать.
Azure PowerShell
PowerShell требует параметры в хэш-таблице hashtable, где ключ соответствует имени параметра, а значение равно значению параметра.
$Parameters = @{
'FeatureName' = 'Web-Server'
'IsPresent' = $False
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ParametersExample' -Parameters $Parameters
Сведения о передаче объектов PSCredential как параметров см. в разделе Учетные активы.
Компиляция конфигураций, содержащих составные ресурсы в Cлужба автоматизации Azure
Функция Составные ресурсы позволяют использовать конфигурации DSC в качестве вложенных ресурсов в рамках конфигурации. Эта функция обеспечивает применение нескольких конфигураций к одному ресурсу. См. составные ресурсы: использование конфигурации DSC в качестве ресурса для получения дополнительных сведений о составных ресурсах.
Примечание.
Чтобы конфигурации, содержащие составные ресурсы, компилировались правильно, необходимо сначала импортировать в Cлужба автоматизации Azure все ресурсы DSC, от которых зависят составные ресурсы. Добавление составного ресурса DSC ничем не отличается от добавления модуля PowerShell в Cлужба автоматизации Azure. Этот процесс задокументирован в разделе Управление модулями в Cлужба автоматизации Azure.
Управление ConfigurationData при компиляции конфигураций в Cлужба автоматизации Azure
Встроенный параметр DSC ConfigurationData позволяет при использовании PowerShell DSC отделить конфигурацию структуры от любой конфигурации среды. Для получения дополнительной информации см. Разделение "что" от "где" в PowerShell DSC.
Примечание.
При компиляции в Cлужба автоматизации Azure State Configuration можно использовать ConfigurationData в Azure PowerShell, но не на портале Azure.
В следующем примере конфигурации DSC используется ConfigurationData посредством ключевых слов $ConfigurationData и $AllNodes. Для этого примера также нужен модуль xWebAdministration.
Configuration ConfigurationDataSample
{
Import-DscResource -ModuleName xWebAdministration -Name MSFT_xWebsite
Write-Verbose $ConfigurationData.NonNodeData.SomeMessage
Node $AllNodes.Where{$_.Role -eq 'WebServer'}.NodeName
{
xWebsite Site
{
Name = $Node.SiteName
PhysicalPath = $Node.SiteContents
Ensure = 'Present'
}
}
}
Вы можете скомпилировать предыдущую конфигурацию DSC с помощью Windows PowerShell. Следующий скрипт добавляет две конфигурации узлов в службу извлечения Cлужба автоматизации Azure State Configuration: ConfigurationDataSample.MyVM1 и ConfigurationDataSample.MyVM3.
$ConfigData = @{
AllNodes = @(
@{
NodeName = 'MyVM1'
Role = 'WebServer'
},
@{
NodeName = 'MyVM2'
Role = 'SQLServer'
},
@{
NodeName = 'MyVM3'
Role = 'WebServer'
}
)
NonNodeData = @{
SomeMessage = 'I love Azure Automation State Configuration and DSC!'
}
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ConfigurationDataSample' -ConfigurationData $ConfigData
Работа с ресурсами в Cлужба автоматизации Azure во время компиляции
Ссылки на ресурсы одинаковы как в Cлужба автоматизации Azure State Configuration, так и в модулях Runbook. Дополнительные сведения см. в следующих статьях:
Ресурсы учетных данных
Если в конфигурации есть параметр, указывающий на объект PSCredential, используйте Get-AutomationPSCredential, передав командлету имя ресурса учетных данных Cлужба автоматизации Azure для получения этих учетных данных. Cлужба автоматизации Azure передает учетные данные в конфигурацию.
Чтобы обеспечить безопасность учетных данных в конфигурациях узлов, зашифруйте учетные данные в MOF-файле конфигурации узла. Необходимо предоставить PowerShell DSC разрешение на вывод учетных данных в виде обычного текста во время создания MOF конфигурации узла. PowerShell DSC не знает, что Cлужба автоматизации Azure шифрует весь MOF-файл после создания задания компиляции.
Вы можете указать PowerShell DSC, что разрешено выводить учетные данные в виде обычного текста в MOF-файлах конфигурации узла, используя данные конфигурации.
PSDscAllowPlainTextPassword = $true следует передать через ConfigurationData для каждого имени блока узла, которое отображается в конфигурации DSC и для которого нужны учетные данные.
В следующем примере показана конфигурация DSC, использующая ресурс учетных данных в системе автоматизации.
Configuration CredentialSample
{
Import-DscResource -ModuleName PSDesiredStateConfiguration
$Cred = Get-AutomationPSCredential 'SomeCredentialAsset'
Node $AllNodes.NodeName
{
File ExampleFile
{
SourcePath = '\\Server\share\path\file.ext'
DestinationPath = 'C:\destinationPath'
Credential = $Cred
}
}
}
Вы можете компилировать конфигурацию DSC, показанную выше, с помощью PowerShell. Следующий код PowerShell добавляет две конфигурации узлов на сервер извлечения Cлужба автоматизации Azure State Configuration: CredentialSample.MyVM1 и CredentialSample.MyVM2.
$ConfigData = @{
AllNodes = @(
@{
NodeName = '*'
PSDscAllowPlainTextPassword = $True
},
@{
NodeName = 'MyVM1'
},
@{
NodeName = 'MyVM2'
}
)
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'CredentialSample' -ConfigurationData $ConfigData
Примечание.
После завершения компиляции может появиться сообщение об ошибке
The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported. Вы можете безопасно игнорировать это сообщение.
Компиляция конфигурации DSC в Windows PowerShell
Процесс компиляции конфигураций DSC в Windows PowerShell описан в документации PowerShell DSC, в разделе Написание, компиляция и применение конфигурации. Этот процесс можно выполнить на рабочей станции разработчика или в службе сборки, например Azure DevOps. Затем можно импортировать MOF-файлы, созданные путем компиляции конфигурации в службу Azure State Configuration.
Компиляция в Windows PowerShell также предоставляет возможность подписывать содержимое конфигурации. Агент DSC проверяет конфигурацию подписанного узла локально на управляемом узле. Проверка гарантирует, что конфигурация, примененная к узлу, получена из полномочного источника.
Вы также можете импортировать конфигурации узлов, скомпилированные за пределами Azure. Импорт включает компиляцию с рабочей станции разработчика или в службу, например Azure DevOps. Такой подход имеет несколько преимуществ, включая производительность и надежность.
Примечание.
Файл конфигурации узла не должен превышать 1 МБ, чтобы разрешить Cлужба автоматизации Azure импортировать его.
Дополнительные сведения о том, как подписывать конфигурации узла, см. в разделе Улучшения в WMF 5.1: подпись конфигурации и модуля.
Импорт конфигурации узла на портале Azure
В учетной записи службы автоматизации выберите конфигурацию состояния (DSC) в разделе "Управление конфигурацией".
На странице "Конфигурация состояния" (DSC) выберите на вкладке "Конфигурации " и нажмите кнопку "Добавить".
На странице "Импорт" щелкните значок папки рядом с полем "Файл конфигурации узла", чтобы найти MOF-файл конфигурации узла на локальном компьютере.
В текстовом поле Имя конфигурации введите имя. Это имя должно совпадать с именем конфигурации, из которой была скомпилирована данная конфигурация узла.
Нажмите ОК.
Импорт конфигурации узла с помощью Azure PowerShell
Для импорта конфигурации узла в учетную запись службы автоматизации можно использовать командлет Import-AzAutomationDscNodeConfiguration.
$importAzAutomationDscNodeConfigurationSplat = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
ConfigurationName = 'MyNodeConfiguration'
Path = 'C:\MyConfigurations\TestVM1.mof'
}
Import-AzAutomationDscNodeConfiguration @importAzAutomationDscNodeConfigurationSplat
Следующие шаги
- Чтобы начать, ознакомьтесь с Cлужба автоматизации Azure State Configuration.
- Дополнительные сведения о компиляции конфигураций DSC для их назначения целевым узлам см. в разделе Compile DSC configurations in Cлужба автоматизации Azure State Configuration.
- Для справки по командлетам PowerShell см. Az.Automation.
- Для получения информации о ценах см. цены Cлужба автоматизации Azure State Configuration.
- См. статью Настройка непрерывного развертывания с помощью Chocolatey для примера использования State Configuration в конвейере непрерывного развертывания.
- Сведения об устранении неполадок, связанных с компиляцией конфигураций DSC в Cлужба автоматизации Azure State Configuration, см. в статье Troubleshoot Cлужба автоматизации Azure State Configuration issues.