etckeeperで /etc 配下をバージョン管理

Subversionの設置 でまずやりたかったのはApacheやらMySQLやらの設定ファイルのバージョン管理でした。
で「わーいSubversion入れたからあとはリポジトリ作ってやればいいや。」とリポジトリの構成を考えていたのですが…。
「自分でいじるファイルだけを管理下に入れる?」「いや、将来ほかのファイルも触るかもしれないよね?」などなどと迷って何か参考になる知見はないかなとワールド・ワイド・ウェブを徘徊していたらミドルウェアの設定ファイルをどのようにバージョン管理すべきか - wyukawa's diaryに行き着きました。WEB+DB PRESS Vol.62「はじめてのチーム開発」に同様の運用が例示されているようなので本棚から引っ張り出して見てみました。
が、
シンボリックリンクを貼ってウンヌンということで、自分の好みとは若干違うかな。でもこれでやってみるかなとこれまた逡巡していたのですが同エントリに「etckeeper」なる記述が。
調べてみるとこれはgitなどのバージョンコントロールシステムをつかって/etc配下をざっくりバージョン管理しちゃいましょというツールらしいです。簡単そう!Subversionをせっかく入れたのですがこのツールはSubversionはサポート外のようです。まぁ/etcの情報を集中管理する必要はまずないので仕方ないですかね。
というわけで etckeeper で /etc の配下をざっくりとバージョン管理することにします。

1. apt-get の下準備

# パッケージリストを取得・更新する
$ sudo apt-get update

# インストール済みのパッケージをアップグレードする
$ sudo apt-get upgrade

2. git の確認

gitは入っていました。いつ入れたっけ?まぁいいでしょう。

$ dpkg -l | grep git
ii  git                                 1:1.7.4.1-3                         fast, scalable, distributed revision control system
ii  git-core                            1:1.7.4.1-3                         fast, scalable, distributed revision control system (obsolete)
ii  git-man                             1:1.7.4.1-3                         fast, scalable, distributed revision control system (manual pages)
 :

3. etckeeper のインストール

$ sudo apt-get install etckeeper

# インストールの確認
$ dpkg -l | grep etckeeper
ii  etckeeper                           0.52ubuntu1                         store /etc in git, mercurial, bzr or darcs

4. etckeeper の設定

/etc/etckeeper/etckeeper.conf
# The VCS to use.
#VCS="hg"
VCS="git"
#VCS="bzr"
#VCS="darcs"
 :

5. etckeeper の初期化およびコミット

$ sudo etckeeper init
Initialized empty Git repository in /etc/.git/

$ sudo etckeeper commit 'Initial commit.'
  :
 create mode 120000 update-motd.d/50-landscape-sysinfo
 create mode 100755 update-motd.d/90-updates-available
 create mode 100755 update-motd.d/91-release-upgrade
 create mode 100755 update-motd.d/98-fsck-at-reboot
 create mode 100755 update-motd.d/98-reboot-required
 create mode 100755 update-motd.d/99-footer
 create mode 100644 update-notifier/hooks_seen
 create mode 100644 updatedb.conf
 create mode 100644 vim/vimrc
 create mode 100644 vim/vimrc.tiny
 create mode 120000 vtrgb
 create mode 100644 w3m/config
 create mode 100644 w3m/mailcap
 create mode 100644 wgetrc
 create mode 100755 wpa_supplicant/action_wpa.sh
 create mode 100755 wpa_supplicant/functions.sh
 create mode 100755 wpa_supplicant/ifupdown.sh
 create mode 100644 xml/catalog
 create mode 100644 xml/xml-core.xml
 create mode 100644 zsh_command_not_found

6. log の確認

$ sudo etckeeper vcs log
commit e7660a8557725874575b085ef68a03f13cc44aaa
Author: naoyes <naoyes@ubuntu>
Date:   Tue Nov 29 22:52:02 2011 +0900

    Initial commit.

上記のように

etckeeper vcs subcommand
とすることで指定したバージョン管理システムのコマンドを透過的に使えるようです。