Dsc windows что это

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

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

В этом упражнении демонстрируется создание и применение конфигурации Desired State Configuration (DSC). This exercise walks through creating and applying a Desired State Configuration (DSC) configuration from start to finish. В нашем примере на сервере будет включен компонент Web-Server (IIS), а содержимое простого веб-сайта «Hello World» будет расположено на этом сервере в каталоге inetpub\wwwroot . The example we’ll use ensures that a server has the Web-Server (IIS) feature enabled, and that the content for a simple «Hello World» website is present in the inetpub\wwwroot directory of that server.

См. дополнительные сведения об особенностях работы с DSC в обзоре платформы Desired State Configuration для руководителей. For an overview of what DSC is and how it works, see Desired State Configuration Overview for Decision Makers.

Требования Requirements

Для выполнения этого примера вам понадобится компьютер под управлением Windows Server 2012 или более поздней версии и PowerShell 4.0 или более поздней версии. To run this example, you will need a computer running Windows Server 2012 or later and PowerShell 4.0 or later.

Запись и размещение файла index.htm Write and place the index.htm file

Сначала мы создадим файл HTML, который будет использоваться как содержимое веб-сайта. First, we’ll create the HTML file that we will use as the website content.

В корневой папке создайте папку с именем test . In your root folder, create a folder named test .

В текстовом редакторе введите следующий текст: In a text editor, type the following text:

Сохраните текст как файл index.htm в ранее созданной папке test . Save this as index.htm in the test folder you created earlier.

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

Конфигурация DSC — это специальная функция PowerShell, которая определяет способ настройки одного или нескольких целевых компьютеров (узлов). A DSC configuration is a special PowerShell function that defines how you want to configure one or more target computers (nodes).

В среде PowerShell ISE введите следующий текст: In the PowerShell ISE, type the following:

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

Как видно, текст выглядит как функция PowerShell, перед именем которой добавлено ключевое слово Configuration. You can see that it looks like a PowerShell function, with the addition of the keyword Configuration used before the name of the function.

В блоке Node определяется настраиваемый целевой узел. The Node block specifies the target node to be configured. В этом случае — localhost . In this case, localhost .

Конфигурация вызывает два ресурса: WindowsFeature и File. The configuration calls two resources, WindowsFeature and File. Ресурсы обеспечивают для целевого узла состояние, определенное в конфигурации. Resources do the work of ensuring that the target node is in the state defined by the configuration.

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

Чтобы применить конфигурацию DSC к узлу, ее сначала нужно скомпилировать в MOF-файл. For a DSC configuration to be applied to a node, it must first be compiled into a MOF file. Для этого запустите конфигурацию как функцию. To do this, you run the configuration like a function. В консоли PowerShell перейдите к папке с сохраненным файлом конфигурации и выполните следующую команду, чтобы скомпилировать конфигурацию в MOF-файл: In a PowerShell console, navigate to the same folder where you saved your configuration and run the following commands to compile the configuration into a MOF file:

Читайте также:  Настройка заставки при включении windows

Будут созданы следующие выходные данные: This generates the following output:

Первая строка делает функцию конфигурации доступной в консоли. The first line makes the configuration function available in the console. Вторая строка запускает конфигурацию. The second line runs the configuration. Результат — создание папки с именем WebsiteTest , которая вложена в текущую папку. The result is that a new folder, named WebsiteTest is created as a subfolder of the current folder. Папка WebsiteTest содержит файл с именем localhost.mof . The WebsiteTest folder contains a file named localhost.mof . Это файл, который затем можно применить к целевому узлу. This is the file that can then be applied to the target node.

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

Теперь, когда у вас есть скомпилированный MOF-файл, вы можете применить конфигурацию к целевому узлу (в нашем примере это локальный компьютер), вызвав командлет Start-DscConfiguration. Now that you have the compiled MOF, you can apply the configuration to the target node (in this case, the local computer) by calling the Start-DscConfiguration cmdlet.

Этот командлет Start-DscConfiguration сообщает локальному диспетчеру конфигураций (LCM) (ядру DSC) о необходимости применить конфигурацию. The Start-DscConfiguration cmdlet tells the Local Configuration Manager (LCM), which is the engine of DSC, to apply the configuration. LCM вызывает ресурсы DSC для применения конфигурации. The LCM does the work of calling the DSC resources to apply the configuration.

Чтобы разрешить выполнение DSC, Windows необходимо настроить для получения команд PowerShell из удаленного расположения, даже когда вы запускаете конфигурацию localhost . To allow DSC to run, Windows needs to be configured to receive PowerShell remote commands, even when you’re running a localhost configuration. Чтобы правильно настроить среду, запустите Set-WsManQuickConfig -Force в терминале PowerShell с повышенными привилегиями. To easily configure your environment correctly, just run Set-WsManQuickConfig -Force in an elevated PowerShell Terminal.

В консоли PowerShell перейдите к папке с сохраненным файлом конфигурации и выполните следующую команду: In a PowerShell console, navigate to the same folder where you saved your configuration and run the following command:

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

Чтобы проверить применение конфигурации, можно вызвать командлет Get DscConfigurationStatus. You can call the Get-DscConfigurationStatus cmdlet to see whether the configuration succeeded.

blog.vmpress.org

Страницы

понедельник, 9 апреля 2018 г.

Настройка ОС с использованием механизма PowerShell DSC

Одним из нововведений, появившихся в PowerShell 4.0, стал механизм настройки требуемого состояния (DSC — Desired State Configuration), позволяющий задавать настройки ОС и приложений в виде конфигурационного файла с использованием синтаксиса PowerShell и затем применить их к компьютеру. Как и в других системах управления конфигурациями вроде Puppet или Ansible администратор описывает требуемую конфигурацию (целевое состояние) вместо указания конкретных команд или скриптов, которые должны быть выполнены.

Файл конфигурации DSC содержит описание целевого состояния для одного или нескольких узлов (node). Внутри описания содержится перечень ресурсов (resource) и настройки, которые должны быть к ним применены. Существует множество типов встроенных ресурсов, таких как file, environment, registry, script, service, user и т.д., позволяющих задавать описание для соответствующих объектов системы, например, ресурс типа service описывает требуется ли включить или отключить службу, и под какой учетной записью требуется ее запускать. Помимо встроенных ресурсов поддерживается добавление ресурсов от сторонних разработчиков, что позволяет расширить возможности DSC по конфигурированию системы.

Конфигурационный файл может включать в себя описание состояния одного или нескольких узлов.
Большим плюсом DSC является поддержка синтаксиса PowerShell, что позволяет упростить написание конфигурационных файлов. Например вместо того, чтобы описывать каждый сервис в отдельности:
можно использовать циклы и передавать значение параметров через переменные:
На основании конфигурационного файла для каждого узла генерируется отдельный файл в MOF формате (Management Object Format).

Читайте также:  Вызвать панель управления через windows

Существует два способа применения настроек из MOF файлов. При Push методе настройки распространяются с административной рабочей станции на целевые компьютеры через Windows Remote Management (WinRM). Для этого используется команда Start-DscConfiguration с аргументом -Path, которые указывает путь к каталогу, содержащему MOF файлы. Перед тем, как использовать Push метод требуется настроить политику выполнения «Set-ExecutionPolicy RemoteSigned» и включить удаленное выполнение PowerShell при помощи команды «Enable-PSRemoting«.

Со временем настройки, сделанные с помощью DSC, могут изменяться. Проверить наличие расхождений между текущими настройками и конфигурационным файлом можно при помощи команды Test-DscConfiguration, а с помощью команды Get-DscConfiguration можно получить значение текущих настроек системы.

Во втором методе (Pull) настраиваемые компьютеры подключаются к файловому серверу (репозиторию конфигурационных файлов) и самостоятельно загружают и применяют настройки.

Для демонстрации работы DSC я создал конфигурационный файл для настройки виртуальной рабочей станции с ОС Windows 10 для работы в среде VDI. Файл отключает ряд неиспользуемых служб и задач из планировщика Windows, задает ряд настроек оптимальных для работы в виртуальной среде, создает локальную учетную запись пользователя с именем User и паролем «P@ssw0rd», копирует дистрибутив Horizon Agent с файлового сервера и выполняет установку.
Часть настроек выполняется при помощи ресурсов типа script, позволяющих выполнять произвольный код на PowerShell.

Подводя итоги, DSC является простым и эффективным способом привести состояние системы к желаемому виду, минимизируя количество кода, котое требуется дла этого написать.

SMEARG

Введение в Powershell Desired State Configuration

Ещё в начале года прошёл курс по PowerShell Desired State Configuration в MVA (кстати, кто не знаком – настоятельно рекомендую Microsoft Virtual Academy – бесплатные курсы по технологиям Microsoft) и приблизительно с тех же пор хотел поделиться полученными знаниями, всё руки не доходили. И вот свершилось…

PowerShell Desired State Configuration (DSC) – настройка требуемого состояния – очень мощный инструмент, который может значительно облегчить процесс настройки системы.

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

Т.е. говоря простыми словами, если нам нужно чтобы в реестре был определённый ключ, чтобы какая-нибудь служба была запущена, какой-нибудь компонент Windows установлен (или наоборот – чтобы чего-то не было, или было выключено), то при традиционном подходе мы должны сами написать проверку каждого требования, и если что-то не соответствует – поправить (опять-таки сами – создать, остановить, доустановить и т.д.).

При использовании DSC всё упрощается – мы просто говорим, что в реестре должен быть такой-то ключ, на диске должен быть такой-то каталог, служба – отключена и .т.д., т.е. просто перечисляем требования.

Далее Powershell смотрит наши требования, и если заданные настройки совпадают с тем, что есть в системе – ничего не происходит, а если отличаются – они будут изменены согласно заданным настройкам.

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

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

Конфигурация DSC

Работа с DSC начинается с конфигурационного скрипта, в котором мы описываем как хотим, чтобы выглядела система. Сам по себе скрипт ничего не делает.

Требуемые настройки – (конфигурация) описываются в блоке Configuration, которому нужно задать имя. Внутри блока Configuration указываются настройки для каждого из компьютеров (если нужно настроить несколько компьютеров).

Читайте также:  Линукс для старых систем

Блок конкретного компьютера начинается с ключевого слова Node. За ним идёт имя компьютера, которое может быть как постоянным, так и задаваться при помощи переменной:

Внутри блока Node прописываются настройки для компьютера, с помощью ресурсов:

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

Описание встроенных ресурсов можно найти в соответствующей статье.

Если чего-то вдруг не хватает – можно дописать свои.

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

Итак, допустим для наших задач нам нужно чтобы

Вот так нежизненный пример, зато каждый сможет повторить дома, без всяких серверов и серьёзных изменений в системе.

Рассмотрим описание одного ресурса подробно (на примере каталога)…

При помощи ключа Ensure задаётся наличие или отсутствие соответствующей настройки. Он может принимать два значения:

Идём дальше. С файлами и каталогами работает ресурс File. По умолчанию он работает с файлами, поэтому нужно явно указать, что нам нужен каталог:

В готовом виде настройка для каталога будет выглядеть так:

Аналогичным образом пишутся настройки для других ресурсов. Узнать какие ключи доступны для каждого ресурса можно узнать всё там же.

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

Примечание: для ресурса File обязательным является указание ключа Arguments, в котором указываются параметры процесса. Если таковых нет (как в нашем случае) – нужно указать пустую строку.

Для ресурса, отвечающего за настройку служб (Service) не предусмотрен ключ Ensure, вместо него есть ключ State, указывающий в каком состоянии должна находиться служба: запущена (Running), или остановлена (Stopped).

Конфигурация ведёт себя так же как функция: если её просто скомпилировать ничего не произойдёт. Её нужно вызвать. Для этого в конфигурационном скрипте последней строкой можно дописать имя нашей конфигурации:

Или запустить её вручную.

В результате её выполнения будет создан файл [имя_компьютера].mof (Managed Object Format). Для нашего примера это MyComputer.mof. Это текстовый файл, в котором содержатся все требования по настройке, которые будут применяться к компьютеру. (Т.е. можно сказать, что выполнив конфигурацию мы перевели требования к компьютеру с понятного нам языка, на язык MOF – Managed Object Format, но над этим можно не задумываться – просто выполнить и всё). Следует отметить, что использование MOF-файлов позволяет использовать DSC для настройки компьютеров не только под управлением Windows, но и Linux.

Примечание: перед тем, как компилировать лучше задать текущим какой-нибудь удобный путь (например тот же, где лежит конфигурационный скрипт), в таком случае .mof-файл будет помещён в каталог с названием конфигурации, по этому пути. В противном случае для успешного результата нужно запускать Powershell от имени администратора, так как по умолчанию Powershell пытается положить mof-файл в каталог %systemroot%/system32.

В результате успешного выполнения вы получите подтверждение:

Далее остаётся запустить выполнение самой конфигурации. Это делается при помощи командлета Start-DSCConfiguration. В качестве параметра ему нужно указать путь к каталогу, в котором лежит mof-файл:

В результате выполнения этого командлета если настройка компьютера соответствовала требованиям ничего не изменится, а если нет – настройки будет изменены согласно требованиям.

Для отслеживания соответствия компьютера заданным настройкам используется командлет Test-DSCConfiguration. Он возвращает True, если настройки совпадают, и False – если не совпадают, при этом не объясняя в чём дело. А нам и не нужно это знать – для того, чтобы вернуть конфигурацию достаточно снова выполнить командлет Start-DSCConfiguration.

Существует возможность развернуть так называемый Pull Server, который будет периодически проверять правильность настроек на клиентских компьютерах, и если клиент не соответствует настройкам – Pull Server будет отправлять на него требуемые настройки. Но это, как говорится, отдельный случай.

Оцените статью