Краткий ответ на ваш вопрос: да.
Я без колебаний рекомендую Git (или любое другое программное обеспечение для контроля версий) отслеживать файлы конфигурации. С тех пор я стал более продуктивным (в частности, для настройки новых установок) и больше доверял своим файлам конфигурации. С контролем версий у меня есть запись о том, какие изменения были внесены, и сообщение о фиксации предоставляет причину, по которой было сделано изменение. Если изменение имеет непреднамеренные побочные эффекты, я могу легко просмотреть журнал / историю, чтобы увидеть, какие изменения вызвали эффекты.
Лично я бы с осторожностью следил за всеми файлами в каталоге /
root. Список игнорируемых путей может стать большим и громоздким. Я предпочитаю хранить каждый логический набор файлов в своем собственном хранилище.
Я вручную использую Git для отслеживания моих личных файлов конфигурации / запуска, например, конфигурации Vim, функций Bash, псевдонимов и т.д. - аналогично подходу, описанному в разделе Как отслеживать $ HOME с помощью git. Я храню каждый набор файлов в своем собственном хранилище и использую символические ссылки на домашний каталог.
Для файлов конфигурации системы я использую Git с Etckeeper для отслеживания файлов в моем каталоге /etc
Недостатки
Одна проблема, которую следует опасаться, - это то, что отслеживаемые файлы содержат жесткие ссылки. Когда Git используется для извлечения файлов или иного изменения рабочего дерева, он отменяет связь с файлами и затем воссоздает их. Смотрите Git, Dotfiles и Hardlinks для более полного объяснения.
Etckeeper
Etckeeper может использоваться для ведения полной истории изменений, внесенных в /etc. Он отслеживает метаданные файла, которые обычно не поддерживаются системами контроля версий, но это важно для /etc
, например, разрешения для /etc/shadow
.
Он подключается к менеджерам пакетов, таким как apt и yum и (в своей конфигурации по умолчанию), запускает до и после установки, поэтому все изменения в /etc
отслеживаются.
Если пакет установлен или удален, все незафиксированные изменения в /etc будут зафиксированы перед операцией пакета, так что есть две фиксации:
- «Сохранение незафиксированных изменений в /etc до запуска yum»
- «Внесение изменений в /etc после запуска yum»
Я использовал его с дистрибутивами на основе Debian и Red Hat и знаю, что он поддерживает управление пакетами Arch. Я не могу сказать, сколько автоматизации это добавит к системе Gentoo, но пакет для нее доступен.
Он также поддерживает передачу файлов конфигурации в удаленный репозиторий (который, разумеется, должен быть закрытым).
конфигурация
После установки пакета вам может потребоваться его настройка (/etc/etckeeper/etckeeper.conf
), например, в системах Ubuntu система управления версиями по умолчанию изменена с Git на Bazaar. Вы также можете отключить ежедневные автоматические коммиты.
Ежедневные автокоммиты
Изменения могут быть автоматически зафиксированы ежедневным заданием cron. Это может раздражать, так как хранилище может быть загромождено несколькими сообщениями автоматической фиксации.
Я раскомментирую соответствующую строку в /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Игнорировать определенные файлы
Отредактируйте /etc/.gitignore
чтобы указать любые файлы, которые не должны отслеживаться.
Первый забег
После настройки выполните следующие команды:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Если ваш текущий каталог и etc
, Вы можете запускать обычные команды git
, например,
sudo git status
sudo git log