Краткое руководство. Создание веб-сайта с использованием Desired State Configuration (DSC)

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

В этом упражнении демонстрируется создание и применение конфигурации Desired State Configuration (DSC). В нашем примере на сервере будет включен компонент Web-Server (IIS), а содержимое простого веб-сайта "Hello World" будет расположено на этом сервере в каталоге inetpub\wwwroot.

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

Требования

Для выполнения этого примера вам понадобится компьютер под управлением Windows Server 2012 или более поздней версии и PowerShell 4.0 или более поздней версии.

Запись и размещение файла index.htm

Сначала мы создадим файл HTML, который будет использоваться как содержимое веб-сайта.

В корневой папке создайте папку с именем test.

В текстовом редакторе введите следующий текст:

<head></head>
<body>
<p>Hello World!</p>
</body>

Сохраните текст как файл index.htm в ранее созданной папке test.

Запись конфигурации

Конфигурация DSC — это специальная функция PowerShell, которая определяет способ настройки одного или нескольких целевых компьютеров (узлов).

В среде PowerShell ISE введите следующий текст:

Configuration WebsiteTest {

    # Import the module that contains the resources we're using.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets this configuration will be applied to.
    Node 'localhost' {

        # The first resource block ensures that the Web-Server (IIS) feature is enabled.
        WindowsFeature WebServer {
            Ensure = "Present"
            Name   = "Web-Server"
        }

        # The second resource block ensures that the website content copied to the website root folder.
        File WebsiteContent {
            Ensure = 'Present'
            SourcePath = 'c:\test\index.htm'
            DestinationPath = 'c:\inetpub\wwwroot'
        }
    }
}

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

Как видно, текст выглядит как функция PowerShell, перед именем которой добавлено ключевое слово Configuration.

В блоке Node определяется настраиваемый целевой узел. В этом случае — localhost.

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

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

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

. .\WebsiteTest.ps1
WebsiteTest

Будут созданы следующие выходные данные:

Directory: C:\ConfigurationTest\WebsiteTest


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

Первая строка делает функцию конфигурации доступной в консоли. Вторая строка запускает конфигурацию. Результат — создание папки с именем WebsiteTest, которая вложена в текущую папку. Папка WebsiteTest содержит файл с именем localhost.mof. Это файл, который затем можно применить к целевому узлу.

Применение конфигурации

Теперь, когда у вас есть скомпилированный MOF-файл, вы можете применить конфигурацию к целевому узлу (в нашем примере это локальный компьютер), вызвав командлет Start-DscConfiguration.

Этот командлет Start-DscConfiguration сообщает локальному диспетчеру конфигураций (LCM) (ядру DSC) о необходимости применить конфигурацию. LCM вызывает ресурсы DSC для применения конфигурации.

Примечание

Чтобы разрешить выполнение DSC, Windows необходимо настроить для получения команд PowerShell из удаленного расположения, даже когда вы запускаете конфигурацию localhost. Чтобы правильно настроить среду, запустите Set-WsManQuickConfig -Force в терминале PowerShell с повышенными привилегиями.

В консоли PowerShell перейдите к папке с сохраненным файлом конфигурации и выполните следующую команду:

Start-DscConfiguration .\WebsiteTest

Тестирование конфигурации

Чтобы проверить применение конфигурации, можно вызвать командлет Get DscConfigurationStatus.

Также можно проверить результаты непосредственным образом. В нашем примере для этого нужно перейти к http://localhost/ в веб-браузере. Вы увидите ранее созданную HTML-страницу "Hello World".

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