Конфигурации DSC
Область применения: PowerShell 7, функция конфигурации компьютера автоматического управления Azure
Конфигурации DSC — это скрипты PowerShell, определяющие особый тип команд. Чтобы определить конфигурацию, используйте ключевое слово configuration
PowerShell .
Configuration MyDscConfiguration {
Environment FirstEnvironmentVariable {
Ensure = 'Present'
Name = 'Foo'
Value = 'Example'
}
Environment SecondEnvironmentVariable {
Ensure = 'Present'
Name = 'Bar'
Value = 'Another'
}
}
MyDscConfiguration
Сохраните скрипт в виде файла .ps1
.
Синтаксис конфигурации
Скрипт конфигурации DSC состоит из следующих частей:
- Блок
Configuration
. Это основной блок сценария. Его можно определить сConfiguration
помощью ключевое слово и указать имя. В этом случае конфигурация DSC имеетMyDscConfiguration
имя . - Один или несколько блоков ресурсов DSC. Здесь конфигурация DSC определяет параметры настраиваемого компонента. В этом случае существует два блока ресурсов DSC. Они оба используют
Environment
ресурс DSC.
Компиляция конфигурации
Прежде чем использовать конфигурацию DSC, необходимо скомпилировать ее в MOF-документ. Для этого необходимо вызвать конфигурацию DSC, как и функцию PowerShell. Последняя строка примера, содержащая только имя конфигурации DSC, выполняет конфигурацию DSC.
Примечание
Чтобы вызвать конфигурацию DSC, она должна быть загружена в текущую область (как и в случае с любой другой функцией PowerShell). Это можно сделать, запустив скрипт с помощью команды "точками", или запустив его с помощью клавиши F5 или нажав кнопку Выполнить скрипт в VS Code. Чтобы создать скрипт точками, выполните команду . .\myConfig.ps1
, где myConfig.ps1
— это имя файла скрипта, содержащего конфигурацию DSC.
При вызове конфигурации DSC:
- Создает папку в текущем каталоге с тем же именем, что и конфигурация DSC.
- Создает файл с именем
localhost.mof
в новом каталоге.
Примечание
MOF-файл содержит все сведения о конфигурации системы. Поэтому его необходимо хранить в безопасном месте.
Использование новых ресурсов DSC в конфигурации DSC
Выполняя предыдущие примеры, вы могли заметить предупреждение о том, что используемый ресурс не импортирован.
С помощью командлета Get-DscResource можно определить, какие ресурсы установлены в системе и доступны для использования. Даже если их модули были помещены в $env:PSModulePath
и распознаются Get-DscResource
, они по-прежнему должны быть загружены в конфигурацию DSC.
Import-DscResource
— это динамический ключевое слово, который можно распознать только внутри Configuration
блока. Это не командлет. Import-DscResource
поддерживает два параметра:
- ModuleName является рекомендуемым способом использования
Import-DscResource
. Он принимает имя модуля, содержащего ресурсы для импорта (а также массив строк с именами модулей). - Параметр Name — имя импортируемого ресурса. Это не понятное имя, возвращаемое в качестве свойства Name возвращаемого
Get-DscResource
объекта , а имя класса, используемое при определении схемы ресурса (свойство ResourceType объекта, возвращаемого ).Get-DscResource
Дополнительные сведения об использовании Import-DSCResource
см. в статье об использовании Import-DSCResource.
Важно!
Существует ограничение в конфигурации компьютера, которое не позволяет ресурсу DSC использовать командлеты PowerShell, не включенные в сам PowerShell или модуль на коллекция PowerShell. Ресурсы DSC, использующие командлеты из одного или нескольких модулей Windows , не будут работать в конфигурации компьютера.