Bcfg2 является большой системой управления конфигурацией, чем можно использовать с какой-либо системой управления версиями.
Я использую один репозиторий для всех систем, которыми я управляю. Bcfg2 обрабатывает различия в конфигурационных файлах для другой машины и групп путем добавления имени хоста или названия группы с приоритетом к имени файла. Bcfg2 дает Вашей системе самый определенный файл для каждой записи ConfigFile.
Так, в Вашем описании конфигурации Вы имели бы:
<ConfigFile name="/etc/network/interfaces" />
и Ваши файлы конфигурации были бы:
# ls Cfg/etc/network/interfaces
interfaces
interfaces.H_server1
interfaces.H_server2
Основное преимущество, которое я вижу с Bcfg2 по Puppet и Cfengine, - то, что вместо того, чтобы запустить скрипты для конфигурирования системы, чтобы сделать вещи Bcfg2 определяет, как система не соответствует спецификации и делает, какие изменения необходимы.
На самом деле самый легкий путь состоит в том, чтобы выполнить все через Инструмент управления Конфигурации. Я предпочитаю Шеф-повара, но Марионетка и cfengine также решают ту же проблему. Шеф-повар, по крайней мере, был создан с намерением или ожиданием, что конфигурации будут сохранены в управлении версиями.
Однако не восстанавливая Вашу инфраструктуру, необходимо, вероятно, написать сценарий копирования отдельных файлов конфигурации к общему каталогу, удостовериться, чтобы, если файлы не называют, чтобы быть самоочевидными, перенести их в sensically-именованную папку, и перенесли это в имя сервера.
Так:
--networkDrive
----ServerName1
------WebServerConfig
------AppServerConfig
----ServerName
------AnotherAppConfig
----ServerName
... и так далее...
Оттуда это легко мерзавцу это и фиксации (который также легко scriptable.)