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とすることで指定したバージョン管理システムのコマンドを透過的に使えるようです。