Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Windows PowerShell 4.0, Windows PowerShell 5.0
В этом упражнении рассматривается создание и применение конфигурации требуемого состояния (DSC) от начала до конца. В следующем примере вы узнаете, как написать и применить очень простую конфигурацию. Конфигурация гарантирует, что файл «HelloWorld.txt» существует на вашей локальной машине. Если вы удалите файл, DSC создаст его заново при следующем обновлении.
Общие сведения о том, что такое DSC и как он работает, см. в разделе Обзор конфигурации требуемого состояния для разработчиков.
Требования
Чтобы запустить этот пример, вам потребуется компьютер под управлением PowerShell 4.0 или более поздней версии.
Напишите конфигурацию
Конфигурация DSC — это специальная функция PowerShell, которая определяет, как вы хотите настроить один или несколько целевых компьютеров (узлов).
В интегрированной среде сценариев PowerShell или другом редакторе PowerShell введите следующее:
Configuration HelloWorld {
# Import the module that contains the File resource.
Import-DscResource -ModuleName PsDesiredStateConfiguration
# The Node statement specifies which targets to compile MOF files for, when
# this configuration is executed.
Node 'localhost' {
# The File resource can ensure the state of files, or copy them from a
# source to a destination with persistent updates.
File HelloWorld {
DestinationPath = "C:\Temp\HelloWorld.txt"
Ensure = "Present"
Contents = "Hello World from DSC!"
}
}
}
Это важно
В более сложных сценариях, где необходимо импортировать несколько модулей, чтобы можно было работать с большим количеством ресурсов DSC в одной конфигурации, убедитесь, что каждый модуль размещен в отдельной строке с помощью Import-DscResource. Это проще поддерживать в системе управления версиями и требуется при работе с DSC в конфигурации состояния Azure.
Configuration HelloWorld {
# Import the module that contains the File resource.
Import-DscResource -ModuleName PsDesiredStateConfiguration
Import-DscResource -ModuleName xWebAdministration
Сохраните файл как «HelloWorld.ps1».
Определение конфигурации похоже на определение функции.
Блок Node указывает целевой узел, который необходимо настроить, в данном случае localhost.
Конфигурация вызывает один ресурс, ресурс.File Ресурсы выполняют работу по обеспечению того, чтобы целевой узел находился в состоянии, определенном конфигурацией.
Компиляция конфигурации
Чтобы применить конфигурацию DSC к узлу, ее необходимо сначала скомпилировать в MOF-файл. Выполнение конфигурации, как функции, скомпилирует по одному .mof файлу для каждого узла, определенного блоком Node . Чтобы запустить конфигурацию, необходимо указать точку источникаHelloWorld.ps1 скрипта в текущей области. Для получения дополнительной информации см. about_Scripts.
Точка источника вашего HelloWorld.ps1 скрипта, введя путь к месту, где вы его сохранили, после ( . точка, пробел). Затем вы можете запустить свою конфигурацию, вызвав ее как функцию. Вы также можете вызвать функцию конфигурации в нижней части скрипта, чтобы вам не нужно было использовать dot-source.
. C:\Scripts\HelloWorld.ps1
HelloWorld
Будут созданы следующие выходные данные:
Directory: C:\Scripts\HelloWorld
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/13/2017 5:20 PM 2746 localhost.mof
Применение конфигурации
Теперь, когда у вас есть скомпилированный MOF, вы можете применить конфигурацию к целевому узлу (в данном случае к локальному компьютеру), вызвав командлет Start-DscConfiguration .
Командлет Start-DscConfiguration сообщает Local Configuration Manager (LCM), подсистеме DSC, о необходимости применения конфигурации. LCM выполняет работу по вызову ресурсов DSC для применения конфигурации.
Используйте приведенный ниже код для выполнения Start-DSCConfiguration командлета. Укажите путь к каталогу, в котором хранится Ur, localhost.mof в параметре Path . Командлет Start-DSCConfiguration просматривает указанный каталог для любых <computername>.mof файлов. Командлет Start-DSCConfiguration пытается применить каждый .mof найденный файл к указанному computername по имени ("localhost", "server01", "dc-02" и т.д.).
Замечание
Если параметр не указан, -WaitStart-DSCConfiguration создается фоновое задание для выполнения операции. Указание параметра -Verbose позволяет наблюдать за подробным выводом операции.
-Wait, и являются необязательными -Verbose параметрами.
Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait
Тестирование конфигурации
После завершения Start-DSCConfiguration командлета вы должны увидеть HelloWorld.txt файл в указанном вами расположении. Вы можете проверить содержимое с помощью командлета Get-Content .
Вы также можете проверить текущее состояние с помощью Test-DSCConfiguration.
Вывод должен быть в True том случае, соответствует ли узел в данный момент примененной конфигурации.
Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!
Повторное применение конфигурации
Чтобы увидеть, как конфигурация будет применена снова, можно удалить текстовый файл, созданный конфигурацией. Используйте Start-DSCConfiguration командлет с параметром -UseExisting . Этот -UseExisting параметр указывает Start-DSCConfiguration на повторное применение файла "current.mof", который представляет собой самую последнюю успешно примененную конфигурацию.
Remove-Item -Path C:\Temp\HelloWorld.txt
Дальнейшие шаги
- Дополнительные сведения о конфигурациях DSC см. в разделе Конфигурации DSC.
- Узнайте, какие ресурсы DSC доступны и как создать пользовательские ресурсы DSC в разделе Ресурсы DSC.
- Конфигурации и ресурсы DSC можно найти в коллекции PowerShell.