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


Написание, компиляция и применение конфигурации

Область применения: 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

Дальнейшие шаги