Как стать автором
Обновить

Just another tool: знакомство с конфигурацией сервисов с помощью Desired State Configuration 

Время на прочтение14 мин
Количество просмотров3.5K
Всего голосов 11: ↑11 и ↓0+11
Комментарии12

Комментарии 12

Я очень не люблю Ансибл за рыхлость и душераздирающую типизацию (и модель памяти), но на фоне ваших примеров, Ансибл — вершина совершенства. Вот это надо закопать и забыть.

Не совсем корректно сравнивать DSC и Ансибл. Каждый инструмент хорош для своей задачи и в своем контексте. Ну и Ансибл на винде — это боль.

Почему не корректно? Вполне корректно — обе системы отвечают за управление конфигурацией.
Другое дело, что у вас какие-то накуренные конфигурации, корнеркейсы не для энтри-левел, они относительно "простого декларативного" ансибла выглядят крипово.


А вообще мне DSC нравится больше чем ансибл, как минимум тем, что он при достаточной декларативности хешмапов вполне императивен и можно быстренько без модуля самому описать три блока прямо внутри конфигурации:


GetScript  = {
}
TestScript = {
}
SetScript  = {
Скрипт-блоки — прелесть. Но с модулями удобнее (хоть и не всегда, так как порой логика исполнения ресурсов кривая).
Про некорректное сравнение: DSC в какой-то степени деревянный. Но зато работает на любом утюге с пошиком.)) А еще у нас есть SCCM и Terraform, которые тоже приводят систему к нужному состоянию. Но DSC все же примитивнее их всех)

А я еще и с Orchestrator, в дополнение к sccm, работал и вспоминаю все это как страшный сон времен vbs скриптов в сисволе.


Хорошо когда есть ps и dsc. Терраформ тоже хорошо наверное, но у меня нет таких задач.

Терраформ далеко не со всеми решениями работает корректно: SC VMM он плохо деплоит)
Итого — у каждой задачи свой набор инструментов из огромного зоопарка))

Можно ли это всё использовать в кросс-платформенном окружении? Т.е. пишу одну конфигурацию для разных платформ (Windows, Linux). Например, раскатить Python, .NET Core, etc.

Для Windows, Linux, MacOS — нельзя, так как эти ОС по-разному устроены.
А вот управлять процессом можно с любой удобной ОС — на любую ОС.
Смотря в каком контексте использовать, вот ссылка с описанием для Linux. Мы в компании использовали DSC несколько лет, сейчас практически всё переписали на ansible, те моменты в которых DSC показал себя хорошо задействовали через ansible модуль. Получилась такая вот комбинированная CM.
При конфигурации Windows Server есть нюансы. У ансибла есть слабая сторона по части эскалации привелегий. Открываем доку: A user must have the SeDebugPrivilege to run a become process with elevated privileges. Б — безопасность.
Впрочем, классический дуализм Эскобара)))

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


Если под безопасностью подразумевается примененная политика безопасности убирающая SeDebugPrivilege.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий