Есть ли аналог etckeeper для Windows? AKA Windows config контроль версий


13

Я хочу создать центральное хранилище конфигурационных файлов, чтобы у меня могли быть изменения в любом конфиге под контролем версий (Mercurial). Это будет включать в себя несколько блоков GNU / Linux (которые будут использовать etckeeper), файлы конфигурации сетевого оборудования, файлы конфигурации принтера и, что не менее важно, конфигурации Windows.

Я знаю, что вы можете импортировать некоторые конфигурации, такие как ISA и DHCP, как текстовые / xml-файлы и даже общие папки как раздел реестра, но для таких вещей, как объекты групповой политики и AD, IIS, MSSql и другие, есть ли способы получить конфигурации в виде плоских файлов? В принципе, можете ли вы иметь что-то вроде etckeeper под Windows? Что-то вроде команд на базе PowerShell или тому подобное?

Кроме того, могут ли ACL и другие права доступа к файлам сохраняться под управлением версиями (hg)?

Кстати, я уже читал

но безрезультатно.

Ответы:


4

Держите их пакеты!

Это скрипт, предоставленный Майклом Дж. Гинтером, который создает резервную копию всех областей DHCP на сервере. (Обратите внимание, что он остановит и перезапустит службу DHCP-сервера.):

http://gallery.technet.microsoft.com/ScriptCenter/en-us/ff25d864-6ff0-411b-b242-97fbe34f011b

Вы можете использовать LDIFDE для импорта и экспорта данных из AD: http://support.microsoft.com/kb/237677

Объекты групповой политики можно экспортировать с помощью ADMX.exe (предоставлено компанией Microsoft по адресу http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/resources/documentation/ windowsServ / 2003 / все / techref / EN-US / w2k3tr_gp_tools.asp

Конфигурация IIS может быть экспортирована через iiscnfg.vbs в% systemroot% \ system32 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/81f04967-f02f-4845-9795-bad2fe1a1687.mspx?mfr=true


Добро пожаловать! К сожалению, не существует бесплатного универсального решения для того, что вам нужно, но в сочетании с CMS, безопасным резервным хранилищем и / или версиями программного обеспечения (например, Mercurial, Git или Subversion), вы можете свернуть свое собственное. И все это должно быть в сценарии!
gWaldo

Первоначальной идеей был Redmine / trac с hg (ну, если бы я использовал redmine, я бы, вероятно, пошел с Git, лучшая интеграция), etckeeper на машинах Linux, ssh-скрипт для получения running_config от коммутаторов и маршрутизаторов и voodoo вместе со скриптами win для выгрузить конфиги (возможно, с «зацепками» модификации файла OSSEC) на машинах-победителях, все идет в репозиторий HG ... вероятно, окна не имеют ничего похожего на etc, отсюда и это. Также все сбрасывается в SAN / NAS. Вы когда-нибудь настраивали что-то похожее на то, что вы описали? Можете ли вы дать мне несколько советов?

Это чертовски хорошая идея, но я не сделал ничего подобного. Если вы можете собрать его достаточно, я бы порекомендовал создать его и / или запустить проект F / OSS. Я бы обычно рекомендовал включать дату / время в имя файла, однако это не имеет большого значения, если вы свернете все в систему контроля версий.
gWaldo

1
Я думаю, что мне придется отказаться от части Redmine, но я могу интегрировать ее после слов. В любом случае, остальное это просто набор конфигов etckeeper, скриптов scp и тому подобного. Я постараюсь документировать это и выпустить некоторые сценарии, но я не думаю, что это может быть продукт, к сожалению. Это может быть отличная идея продукта FOSS.

1

Для ACL и прав доступа к файлам вы можете попробовать PowerShell:

get-acl c:\temp | format-list
get-acl -path hklm:\ | format-list

Мы купили Tripwire, чтобы выполнять аналогичную функцию, но он страдает от функционального вздора и уникального пользовательского интерфейса до такой степени, что он ржавеет от пренебрежения.


... Я действительно должен потратить некоторое время на изучение PowerShell. Благодарю.

1

В Windows нет стандартного способа хранения конфигурации в программном обеспечении, поэтому не может быть единого метода для обработки этих настроек. Прежде чем кто-то начнет болтать о том, что существует какой-то «стандарт», давайте пока посмотрим на рекомендации Microsoft.

  • Сначала нам сказали создать все конфиги в win.ini.
  • Далее было сказано, что win.ini становится слишком большим, поэтому поместите конфиги в файл .ini в каталоге Windows.
  • Нет, каталог Windows становится загроможденным. Используйте каталог приложения.
  • Послушайте, у нас есть этот новый репозиторий центральной конфигурации, который мы будем называть «Реестр». Положите все свои вещи там.
  • К сожалению, реестр становится слишком большим. Поместите конфиги в профиль пользователя.
  • Угадайте, что профиль не работает очень хорошо ...
  • и т. д.

Приложения, в том числе собственные Microsoft, не имеют стандартного способа или места для хранения конфигов и используют любой или все вышеперечисленные методы, а также несколько «нестандартных» методов. Добро пожаловать в противоречивый и постоянно меняющийся мир Windows.


Да. Я знаю, как медленно Unixes могут получить их загроможденные / etc. Ой, подождите ...

0

Там действительно нет, не бесплатно в любом случае. Есть коммерческие продукты, которые могут сделать это, я понимаю, что они большие и дорогие. Opsware (или HP Server Automation сейчас) может сделать это.

Парень, который разработал MRTG, попробовал и потерпел неудачу на чем-то похожем около 10 лет назад. Окружающая среда сильно изменилась, так что вы можете опираться на их работу и придумать что-то хорошее. Например, теперь вы можете сбросить объекты групповой политики, что было одной из их проблем.

/ edit - и вы всегда можете сбросить AD в LDIF или CSV. Сделайте ночной экспорт в один из них и добавьте его в CSV. Все IIS находится в файловой системе и в метабазе, которая также находится в файловой системе. Нормальные резервные копии и / или копии тех в CSV были бы хороши. SQL config, я не уверен в этом; Я думаю, что это все реестр и PS, вероятно, есть крючки для их отображения.

Одно замечание - вы спрашиваете о резервном копировании ACL на файлы? Jeebus - пожалуйста, скажите мне, что вы создаете резервные копии файлов, и ваша программа резервного копирования сохраняет ACL. Если вы вообще не создаете резервные копии файлов, какая польза для вас от ACL? Если вы не создаете резервные копии файлов с помощью ACL, что не так с вашим программным обеспечением для резервного копирования? Вы можете включить аудит изменений ACL изначально, может быть, вы хотите это сделать?


Я не упоминаю резервные копии как таковые. Почти все резервные копии sw сохраняют ACL. Однако контроль версий в большинстве случаев даже не сохраняет разрешения. Например, Mercurial сохраняет только разрешение eXecutable на Unix. Для этого вам нужен хук, аддон или «трюк», такие как ACL / разрешения savinf в отдельном метафайле. Кроме того, я собираюсь посмотреть на это, но ... вы можете сказать мне, например, как экспортировать AD в LDIF?

РЕДАКТИРОВАТЬ: Очевидно, с ldifde - technet.microsoft.com/en-us/library/bb727091.aspx

0

Я не слышал ни об одном. Хотя Реестр может быть домом (большей части) конфигурации для Windows, и он (своего рода) может быть представлен в текстовом виде, лучшее, на что вы можете надеяться, - это Документация по конфигурации, а не Управление конфигурацией . Существуют API-интерфейсы для отслеживания изменений в реестре, о чем свидетельствуют несколько инструментов System Internals, которые теоретически допускают действия на основе событий (например, возврат к старой конфигурации). К сожалению, есть некоторые вещи (групповая политика, являющаяся самой большой), которые разработаны, чтобы преодолеть любые ограничения на изменение конфигурации на основе локальных компьютеров.

Тем не менее, это просто управляет базовой операционной системой. Как только вы начнете добавлять другие продукты Microsoft, ситуация станет намного сложнее. IIS имеет свою собственную базу данных, метабазу, которой нет в реестре. MS-SQL имеет целую кучу конфигураций, хранящихся в самой базе данных среди других мест. AD, безусловно, может быть представлен в виде простого файла, это экспорт LDIF из LDAP, но опять же, это документация, а не управление. Сами групповые политики - это деревья каталогов, заполненные файлами на контроллерах домена.

Это не легкая работа с любого натяжения. Вот почему такие системы, как Microsoft System Center Configuration Manager или Novell Zenworks Configuration Management, так же сложны, как и они. На самом деле, насколько я знаю, эти продукты - самые близкие Windows к чему-то вроде etckeeper.


«Метабаза» - это всего лишь XML-файл в файловой системе - довольно просто взять этот ночной файл и записать его версию. Теперь, конечно, это не то же самое, что запуск различий каждый раз, когда кто-то вручную меняет конфиги, это будет совсем другой котелок с рыбой. Это зависит от того, насколько гранулярна Ascendant.
mfinni

1
Потратил некоторое время на веб-странице Microsoft System Center Configuration Manager. Это что-то вроде «красивой диаграммы, модного слова, модного слова, синергии, поздравлений, смутных обещаний, модных слов». До сих пор точно не знаю, что он делает, но с такими предложениями, как «соединение людей, процессов и инструментов» - путем оценки зависимостей и оптимизации производительности бизнес-процессов изнутри операционной системы, приложений и составных служб и рабочих процессов как в физических, так и в рабочих процессах. виртуальные среды. " это кажется предприимчивым. Это хорошо?

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

0

Код на http://gallery.technet.microsoft.com/ScriptCenter/en-us/edca4de3-642a-4a84-9884-e4035c984e31 и http://gallery.technet.microsoft.com/ScriptCenter/en-us/a3c9ad7b -6b5c-40ef-a928-3565432735ee дают некоторое представление о том, что можно надеяться с помощью команды «netsh» на вашем dhcp-сервере. В данный момент у меня нет ни одного доступного для тестирования, но это один из подходов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.