Поделиться через


Создание, компиляция и применение конфигурации

Область применения: Windows PowerShell 4.0, Windows PowerShell 5.0

В этом упражнении демонстрируется создание и применение конфигурации Desired State Configuration (DSC). В следующем примере вы узнаете, как написать и применить очень простую конфигурацию. Конфигурация будет гарантировать, что файл "HelloWorld.txt" существует на локальном компьютере. В случае удаления файла DSC будет создавать его заново при очередном обновлении.

См. дополнительные сведения об особенностях работы с DSC в обзоре платформы Desired State Configuration для разработчиков.

Требования

Для выполнения этого примера вам понадобится компьютер с 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 State Configuration.

 Configuration HelloWorld {

  # Import the module that contains the File resource.
  Import-DscResource -ModuleName PsDesiredStateConfiguration
  Import-DscResource -ModuleName xWebAdministration

Сохраните файл как "HelloWorld.ps1".

Определение конфигурации аналогично определению функции. Блок Node определяет настраиваемый целевой узел; в нашем примере это localhost.

Конфигурация вызывает один элемент resources, а именно ресурс File. Ресурсы обеспечивают для целевого узла состояние, определенное в конфигурации.

Компиляция конфигурации

Чтобы применить конфигурацию DSC к узлу, ее сначала нужно скомпилировать в MOF-файл. Выполнение конфигурации, как и функции, скомпилирует один файл .mof для каждого узла, определенного в блоке Node. Чтобы запустить конфигурацию, необходимо ввести по префиксу-точке скрипт HelloWorld.ps1 в текущей области. Дополнительные сведения см. в статье about_Scripts.

Введите по префиксу-точке скрипт HelloWorld.ps1, указав путь, где вы сохранили его, после . (точка, пробел). Затем можно запустить конфигурацию, вызвав ее как функцию. Можно также вызвать функцию конфигурации в нижней части скрипта, чтобы не нужно было использовать префикс-точку.

. 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 сообщает локальному диспетчеру конфигураций (LCM) (ядру DSC) о необходимости применить конфигурацию. LCM вызывает ресурсы DSC для применения конфигурации.

Используйте приведенный ниже код для выполнения командлета Start-DSCConfiguration. Укажите путь к каталогу, где хранится localhost.mof, в параметре Path. Командлет Start-DSCConfiguration просматривает каталог, указанный для любых файлов вида <computername>.mof. Командлет Start-DSCConfiguration пытается применить каждый файл .mof, который найдет, к computername, указанному в имени файла (localhost, server01, dc-02 и т. д.).

Примечание

Если параметр -Wait не указан, Start-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

Дальнейшие действия