Быстрая настройка серверов с помощью PowerShell Desired State Configuration

в 7:32, , рубрики: Desired State Configuration, dsc, iis, powershell, powershell dsc, PowerShell ISE, pull server, Windows Server, windows server 2012 r2, Блог компании Microsoft, ит-инфраструктура, конфигурация сервера, настройка желаемого состояния, системное администрирование

Во многом работа системного администратора не отличается оригинальностью задач. Так или иначе, большинство заданий – это повторяющиеся операции, которые сводятся к созданию, удалению, изменению настроек, установки и настройки ролей и компонентов системы. Абсолютно естественным является желание максимально автоматизировать такие задачи. Одним из инструментов, спешащих на помощь администратору, является PowerShell Desired State Configuration, которая впервые была представлена в Windows Server 2012 R2. О том, что это такое и как может облегчить жизнь IT-специалиста использование Desired State Configuration мы и поговорим в этой статье.

Быстрая настройка серверов с помощью PowerShell Desired State Configuration - 1


Логично начать с того, что же вообще такое PowerShell Desired State Configuration. Я в большинстве случаев не люблю переводить английские термины, т.к. не всегда переведенный вариант отражает нужный смысл. В этом случае, мы имеем дело с исключением. Desired State Configuration переводится как «настройка требуемого состояния», и этот перевод как нельзя лучше отражает смысл технологии.

Используя PowerShell DSC, вы описываете как хотите, чтобы ваша система выглядела в конечном итоге, и далее происходит ее автоматическая настройка в соответствии с заданными требованиями.

PowerShell Desired State Configuration – это очень мощный инструмент, который может значительно облегчить вам процесс настройки системы. Недавно на портале MVA вышел курс, в котором рассказывается обо всех аспектах этой технологии. А в этой статье я хочу рассказать о технологии и её основных преимуществах.

Системные требования

Каких-то особенных системных требований у DSC нет. Desired State Configuration – это технология Microsoft, представленная в рамках Windows Management Framework 4.0, и предназначенная для декларативной конфигурации системы. Соответственно, для того, чтобы Desired State Configuration корректно работала, нужно установить Windows Management Framework 4.0 или выше. WMF 4.0 предустановлен в Windows 8.1 и Windows Server 2012 R2 (но для корректной работы нужно обновление KB28883200). Также этот Framework доступен для Windows 7, Windows Server 2008 R2 и Windows Server 2012 (тут нужно не забыть установить еще и .NET 4.5). В связи с тем, что можно бесплатно обновиться с Windows 8 на Windows 8.1, WMF 4 для Windows 8 не доступен.

Конфигурация и её применение

Теперь давайте поговорим о том, как работает Desired State Configuration. Давайте представим следующую задачу: нам необходимо развернуть веб-сайт на нашем сервере. Для этого нужно установить IIS, ASP .NET, а также сам контент сайта. Это не слишком сложная операция. Тем не менее, мы потратим определенное время, чтобы установить какие-то недостающие элементы или же компоненты сервера, которые необходимы для корректной работы. В случае, если установку мы осуществляем на уже используемом компьютере, можно столкнуться с различными конфликтами. Еще большая путаница возникнет, если нам нужно настроить сразу несколько серверов с одинаковой конфигурацией.

Использование Desired State Configuration позволяет решить эту проблему. Далее я приведу конфигурационный скрипт, с помощью которого мы проведем настройку.

Configuration IISWebsite
{
    param(
        $NodeName
    )

    Node $NodeName
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
        WindowsFeature ASP
        {
            Ensure = "Present"
            Name = "Web-Asp-Net45"
        }
        File WebContent
        {
            Ensure = "Present"
            Type = "Directory"
            SourcePath = "C:ContentBakeryWebsite"
            DestinationPath = "C:inetpubwwwroot"
            Recurse = $true
        }
    }

} IISWebsite -NodeName "DSC01"

С одной стороны, PowerShell DSC начинается с конфигурационного скрипта. С другой, этот скрипт не делает абсолютно НИ-ЧЕ-ГО! В нем мы просто декларативно описываем, как хотим, чтобы система выглядела.

В DSC было введено новое ключевое слово Configuration, с помощью которого описывается главный контейнер конфигурации. По сути, этот блок является функцией. Внутри блока Сonfiguration вы можете указать желаемые настройки для каждого из компьютеров, которые есть в вашем окружении.

Блок конкретного компьютера начинается с ключевого слова Node. Далее следует имя целевого компьютера, которое может быть как постоянным, так и задаваться при помощь переменной. Внутри блока Node вы уже указываете желаемую настройку для вашего конечного компьютера, с помощью ресурсов.

Ресурсы DSC – это специализированные модули PowerShell, с помощью которых и осуществляется финальная настройка целевых узлов. Ресурсы разделяются на встроенные и пользовательские. Встроенных ресурсов всего 12. Тем не менее легко можно дописать недостающие ресурсы, если возникнет такая необходимость.

Что происходит в нашем скрипте?
Мы просто описываем то, как наша система должна выглядеть.

Ensure = "Present"

С помощью этой команды мы убеждаемся, что нужные нам компоненты будут присутствовать на конечном компьютере, после того, как конфигурация будет применена.

Применение конфигурации выглядит следующим образом:

Быстрая настройка серверов с помощью PowerShell Desired State Configuration - 2

После запуска конфигурационного скрипта создается MOF-файл (или Managed Object Format файл). Это текстовый файл, в котором содержатся все требования по настройке, которые в дальнейшем применяются на целевом компьютере. Имя MOF-файла будет соответствовать значению Node. Сам файл будет находиться в папке, название которой будет совпадать с названием Configuration. Здесь важно отметить, что использование MOF-файлов позволяет использовать DSC не только для настройки компьютеров под управлением Windows, но и под управлением Linux.

Далее необходимо MOF-файл передать на целевой компьютер (на котором мы хотим развернуть сайт). Конфигурация применяется двумя способами: с помощью метода Push (конфигурационный скрипт должен быть перенесен на конечный компьютер вручную) или метода Pull (создается Pull Server, который периодически проверяет корректность конфигурации, и если клиент сконфигурирован неверно, то Pull Server отправляет на него требуемые настройки). Применение конфигурации осуществляется с помощью следующего командлета:

Start-DscConfiguration –Path .IISWebsite –Wait –Verbose

C помощью параметра –Path указываем путь к MOF-файлу. Время применения конфигурации зависит от того, насколько соответствует текущая настройка компьютера тем требованиям, что указаны в MOF-файле.

После применения конфигурации возможность PowerShell DSC не заканчиваются. Ведь часто нам нужно определить произошли ли какие-то изменения в настройках. Сделать это можно с помощью командлета:

Test-DscConfiguration –CimSession $session

Запустив его, мы запустим проверку: совпадает ли текущая конфигурация системы с той, что прописана в MOF-файле. Если конфигурации совпадают, то будет возвращено значение «True», в противном случае – «False».

Что делать, если мы узнаем об изменении конфигурации? Если мы используем PowerShell DSC достаточно всего лишь снова запустить командлет:

Start-DscConfiguration –Path .IISWebsite –Wait –Verbose

И все недостающие элементы будут восстановлены.

Преимущества Desired State Configuration

Еще раз проговорю, в чем же заключаются преимущества PowerShell Desired State Configuration.

  • Использование PowerShell DSC позволяет точно настроить конечный компьютер без каких-либо дополнительный проверок. Мы просто описываем как хотим, чтобы системы выглядела; все остальное делается автоматически.
  • PowerShell DSC позволяет отследить возможные изменения настроек и быстро их исправить, опять-таки, без дополнительных проверок.
  • С помощью PowerShell DSC можно одновременно и одинаково сконфигурировать несколько компьютеров.

Надеюсь, эта статья была вам полезной.

Подробнее о том, как создавать свои собственные ресурсы или как настроить Pull Server для PowerShell DSC вы можете узнать из курса на портале MVA.

Удачи в применение PowerShell Desired State Configuration для настройки ваших систем!

Полезные ссылки

Автор: m_berzin

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js