У меня есть куча серверов * nix в производстве. Я хотел бы поместить важные файлы конфигурации в систему контроля версий
Моя основная идея заключалась в том, чтобы
Установите распределенную систему контроля версий, чтобы конфигурации каждой системы сохранялись на отдельном диске.
Конфигурации изменяются либо через редактор, либо через внешний источник.
Предполагая, что $ EDITOR используется в оболочке, можно было бы добавить дополнительную команду при сохранении файла (так что файл затем добавляется в git). Это может быть проблематично, поскольку не всегда пользователь делает vim /etc/my.cnf, он может открывать my.cnf из vim
Другой источник изменений может быть зафиксирован с помощью сценария cron, который запускается, скажем, каждый час и добавляет элементы в систему управления версиями (этого достаточно). Затем репозиторий git можно вынести в центральное место для хранения. 1 час вполне достаточно, поскольку предполагается, что первый способ регистрации изменений будет работать большую часть времени.
Я хотел бы знать, есть ли какой-нибудь инструмент, который уже делает это (или делает это лучше). Было бы идеально, если бы при каждом изменении конфигурации, инициированном пользователем, ему предлагалось добавить изменение в локальное хранилище.
Я сделал нечто подобное. Однако мы будем управлять файлами конфигурации в Puppet, которые затем будут храниться в SVN. У меня есть два других администратора Linux на серверной ферме из 160 серверов, и это хорошо сработало. Он предоставил историю изменений (SVN), а также управление конфигурацией через Puppet.
Взгляни на etckeeper - это довольно близко к тому, что вы ищете.
изучите такие инструменты, как puppet или cfengine. Обычно это лучший результат, imho.