etckeeper: сохранение системных настроек

etckeeper: сохранение системных настроекetckeeper — это программа для создания резервных копий настроек системы с использованием версионного контроля. Любые изменения можно сохранить или откатить до нужной версии. Кроме того, эту программу можно использовать при развертывании копий серверов, чтобы избежать ручной настройки с самого начала, а ограничиться только внесением необходимых изменений. Давайте посмотрим, как она работает и как ей пользоваться.

Установка etckeeper

Для установки etckeeper в Debian достаточно дать команду

Зависимости будут установлены автоматически

Настройка

Настройки etckeeper находятся в директории /etc/etckeeper. Главный файл настроек называется etckeeper.conf

Главной настройкой является VCS — какую систему контроля версий использовать. Доступные варианты:

  • hg (mercurial)
  • git (по умолчанию)
  • bzr (Bazaar)
  • darcs

В конфигурационном файле эта настройка выглядит так:

Затем указываются опции для соответствующих систем версионного контроля:

По умолчанию коммиты выполняются каждый день. Чтобы этого избежать, нужно раскомментировать строчку

Для того, чтобы не выводилось предупреждение при обработке специальных файлов, нужно раскомментировать опцию

Следующая опция отключает коммит изменений до инсталляции, чтобы этого не происходило, нужно раскомментировать ее

Следующие две опции устанавливают высокоуровневый пакетный менеджер (apt, yum, pacman-g2) и низкоуровневый пакетный менеджер (dpkg, rpm, и т.д.):

Использование etckeeper

Пользоваться etckeeper’ом очень просто. Формат команды выглядит так:

Вот список команд:

init Установить и инициализировать репозиторий (зависит от значения опции VCS в конфигурационном файле)
commit [сообщение] Закоммитить изменения конфигурационных файлов в репозиторий. При этом распознается, если вы используете sudo или su для получения прав root, и записывает оригинальное имя пользователя
pre-commit Эта команда вызывается как пре-коммит хук. Она сохраняет метаданные и делает первичную проверку
pre-install Эта команда вызывается через хук DPkg::Pre-Install-Pkgs менеджера пакетов apt и аналогичные хуки других пакетных менеджеров. Она позволяет закоммитить любые незакоммиченные изменения перед инсталляций, обновлением пакетов и так далее. Это позволяет иметь в репозитории все версии конфигурационных файлов, включая те, которые устанавливались с предыдущей версией пакета.
post-install Эта команда вызывается через хук DPkg::Post-Invoke менеджера пакетов apt и аналогичные хуки других пакетных менеджеров. Она коммитит изменения, сделанные пакетами при установке
unclean  Эта команда возвращает значение true, если есть незакомиченные изменения
update-ignore [-a] Обновить файл, в котором перечислены файлы, которые требуется игнорировать. Данные вне блока «managed by etckeeper» не трогаются. Опция -a добавит блок «managed by etckeeper», если его не существует.
vcs команда [опции] Выполнить команду системы контроля версий, которая задана в настройках. Например, «etckeeper vcs diff»
uninit [-f] Уничтожение данных. Удаляется созданный командой init репозиторий. Если указан ключ -f, то данные будут удалены без вопросов. Обычно используется при изменении системы контроля версий, которую вы используете. Сначала вызывается uninit для включенной в данный момент системы контроля версий, а затем init для той, на которую вы переходите.

Таким образом, при использовании etckeeper, изменяя конфигурационные файлы, вы можете в любое время откатить на то состояние, которое сохранено в репозитории.

Если у вас есть желание поучаствовать в разработке, вы можете найти проект на GitHub’е.

etckeeper: сохранение системных настроек: 2 комментария

  1. Biobiopigo

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

  2. FontsDownloadFree

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *