Etckeeper
Etckeeper — это коллекция инструментов для хранения /etc в репозитории VCS. Получает доступ к apt/yum/packman/etc для автоматического внесения изменений, выполняемых в /etc в ходе обновления пакета. Имеет модульное исполнение и широкие возможности настройки, а также несложен в использовании при наличии понимания базовых принципов работы с VCS.
Проще говоря, утилита позволяет автоматически сохранять изменения в конфигурационных файлах при помощи таких средств как git, bazaar, mercurial, darcs. Использование систем контроля версий позволяет легко отслеживать критические изменения в настройках, производить откат на предыдущие версии и анализировать работу с директорией /etc.
Установка
Установить пакет etckeeper из репозитория
Настройки
Файл конфигурации - /etc/etckeeper/etckeeper.conf
По умолчанию задаётся система контроля версий git, её можно изменить, убрав комментарии в начале.
Так же можно добавить параметры для VCS, изменив переменную *_COMMIT_OPTIONS
и задать некоторые другие параметры
Использование
После установки пакета, для инициализации репозитория используется команда
etckeeper init
После чего нужно провести первый коммит, от которого начнётся вестись слежка за изменениями
etckeeper commit "Initial commit"
Теперь после каждой установке пакета при помощи apt-get автоматически будет создаваться коммит с изменениями, которые произошли в /etc
Автоматическая загрузка на удалённый репозиторий
Периодически бывает удобно хранить /etc на удалённом репозитории, etckeeper поддерживает такой функционал. Для этого сначала нужно создать удалённый репозиторий и добавить его в SCV
su -
cd /etc/
git remote add origin *адрес удалённого репо*
После чего нужно редактировать файл настроек /etc/etckeeper/etckeeper.conf
.
В нём задать значение переменной PUSH_REMOTE="origin"
Теперь при каждом вызове etckeeper commit
автоматически будет происходить загрузка на удалённый репозиторий.
Автоматическое создание коммитов при помощи incron
См. основную статью incron
Вкратце - работа incron похожа на обычный cron, только вместо привязки ко времени, здесь идёт привязка к состоянию файлов.
Для автоматического создания коммитов можно привязать любые изменения в директории /etc/ к вызову etckeeper commit
.
После установки и первичной настройки incron запустите команду incrontab -e
от имени рута.
Внутри нужно ввести правила работы:
/etc IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
И сохранить файл.
Здесь: IN_MODIFY - вызов программы при модификации файла, $@ - путь до изменённого файла, $# - название файла