/etc/以下のファイルを自動的にバージョン管理してくれるetckeeperを使ってみます。
etckeeperというのはGitやhgなどを使って、/etc/以下の設定ファイルを自動でバージョン管理してくれるツールです。aptコマンドや日付が変わったときなどに自動でコミット、もしくは設定ファイルを更新した後に手動でコミットできます。
以下にDebian6 squeezeサーバーでのインストールから設定をまとめましたので、よければご参考ください。
まずはバージョン管理ツールが入っていない場合は入れておく必要があります。etckeeperのデフォルトではgitが設定されていますが、今回はMercurialで設定してきたいと思います。
Mercurialのインストール
$ sudo aptitude install mercurial
etckeeperのインストール
$ sudo aptitude install etckeeper
以下の新規パッケージがインストールされます:
etckeeper
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
32.5 kB のアーカイブを取得する必要があります。展開後に 389 kB のディスク領域が新たに消費されます。
取得:1 http://ftp.jp.debian.org/debian/ squeeze/main etckeeper all 0.48 [32.5 kB]
32.5 kB を 0秒 秒でダウンロードしました (204 kB/s)
パッケージを事前設定しています …
未選択パッケージ etckeeper を選択しています。
(データベースを読み込んでいます … 現在 48812 個のファイルとディレクトリがインストールされています。)
(…/etckeeper_0.48_all.deb から) etckeeper を展開しています…
man-db のトリガを処理しています …
etckeeper (0.48) を設定しています …
etckeeper init not ran as git is not installed
python-central のトリガを処理しています …
Mercurialでバージョン管理
VCS=hgのコメントを外して、VCS=gitをコメントアウトするだけ
/etc/etckeeper/etckeeper.conf
# The VCS to use.
VCS=”hg”
#VCS=”git”
#VCS=”bzr”
#VCS=”darcs”
# Options passed to git commit when run by etckeeper.
GIT_COMMIT_OPTIONS=””
# Options passed to hg commit when run by etckeeper.
HG_COMMIT_OPTIONS=””
# Options passed to bzr commit when run by etckeeper.
BZR_COMMIT_OPTIONS=””
# Options passed to darcs record when run by etckeeper.
DARCS_COMMIT_OPTIONS=”-a”
# Uncomment to avoid etckeeper committing existing changes
# to /etc automatically once per day.
#AVOID_DAILY_AUTOCOMMITS=1
# Uncomment to avoid etckeeper committing existing changes to
# /etc before installation. It will cancel the installation,
# so you can commit the changes by hand.
#AVOID_COMMIT_BEFORE_INSTALL=1
# The high-level package manager that’s being used.
# (apt, pacman-g2, yum etc)
HIGHLEVEL_PACKAGE_MANAGER=apt
# The low-level package manager that’s being used.
# (dpkg, rpm, pacman-g2, etc)
LOWLEVEL_PACKAGE_MANAGER=dpkg
初期化する
$ sudo etckeeper init
$ sudo etckeeper commit “etckeeper start”
これで/etc/以下のファイルがバージョン管理される。うっかり消してしまった、前の設定に戻したい・・・、そんなときのためのコマンドetckeeperをご紹介しました。