DSC (Desired State Configuration) — новая возможность PowerShell 4.0, которая позволяет задавать конфигурацию, отслеживать изменения и исправлять её, приводя к изначально заданной. В докладе разберем применение PowerShell Desired State Configuration для развертывания и управления фермой SharePoint.
11. • Избежать ручной конфигурации серверов
• Единая конфигурация Dev, Test и Prod
Развертывание
Изменение конфигурации
Валидация
• Простая декларация без реализации
• Отслеживание изменений в конфигурации
• Комбинирование конфигураций
Начнем с того как обычно конфигурация серверов и/или компьютеров приводится к нужному состоянию.
Почти всегда это делается человеком по инструкции, написанной в виде обычного документа.
Меняются требования к конфигурации – вносим изменения в документ.
Версионность, отслеживание изменений крайне затруднительны в таком случае
Гораздо лучше выглядит ситуация в случае когда конфигурация описана в виде PowerShell-скрипта.
Уже можно отслеживать изменения в конфигурации.
Проблема остается только в ложности восприятия конфигурации в таком формате.
Декларативный скрипт конфигурации с тем же функционалом.
Компиляция конфигурации происходит единожды, результатом является MOF-файл, который не содержит в себе никакой логики или кода.
Почему MOF?
Формат MOF (Managed Object Format) – разработан компанией Distributed Management Task Force (DMTF), которая занимается разработкой стандартов для обеспечения кросс-платформенного управления. MOF-файл – это стандарт кросс-платформенной конфигурации, используемый как Windows так и Linux.
Спецификацию формата MOF можно посмотреть на сайте компании DMTF:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0221_3.0.0.pdf
MOF-файл описать в обычном блокноте или любом стороннем приложении на любой платформе.
PowerShell здесь выступает лишь как удобный инструмент для решения таких задач
После MOF-файл должен быть доставлен на целевой компьютер (не обязательно Windows-сервер, может быть и Linux). Поэтому в терминологии используется Target Node.
Существует два механизма доставки MOF-файлов в PowerShell DSC:
PUSH MODE
Режим PUSH означает, что MOF-файл должен быть доставлен до целевого сервера (Target Node), на котором все необходимые DSC ресурсы должны быть установлены.
PULL MODE
В случае с режимом PULL. Целевой сервер получает MOF-файлы с PULL-сервера и, если небходимо, DSC ресурсы.
Демо 1: Конфигурация, основанная на наличии папки на диске
Демо 2: Параметры, ConfigData и зависимости
Ресурсы для работы с SharePoint доступны на сайте PowerShell Gallery
xSharePoint.
Префикс “x” означает eXperimental, т.е. предоставляется как есть без какой-либо поддержки Microsoft.
Префикс “c” означает Community
Демо 3: Простая конфигурация активации фичи на сайте с помощью PowerShell DSC
Демо 4: Развертывание решений с помощью PowerShell DSC
Демо 5: Формирование отчета о несоответствии конфигурации
Преимущества доступные при использовании PowerShell DSC:
Конфигурация может быть написана для одного компьютера и применена повторно, а может быть определена для группы компьютеров (в случае с SharePoint можно описать конфигурацию всей фермы, включая SQL, AD)
Повторное использование конфигурации позволяет обеспечить единый вид различных сред, используемых в работе (Dev, Test, Prod)
При изменение конфигурации в одной из указанных сред достаточно внести соответствующие изменения в конфигурацию и привести все остальные среды к новому состоянию