Glide Note

glidenote's blog

git + etckeeper + BitbucketのPrivate Repositoryで/etcを管理

個人で利用しているさくらのVPSのプラン変更に伴い、サーバの移行作業をしているんですが、 そのタイミングで、/etc配下のファイルの管理を個人で立ててたgitoliteから Bitbucketのprivate repositoryでの管理に変更したのでメモ。

Bitbucketでprivate repositoryを作成する方法は以前紹介したのでそちらを参照下さい。

導入環境はCentOS 6.2です。Bitbucketへの鍵登録などは済んでいるものとします。

etckeeperの導入

1
sudo yum -y install git etckeeper

/etc/etckeeper/etckeeper.confが設定ファイルになり、デフォルトで

1
2
3
VCS="git"
HIGHLEVEL_PACKAGE_MANAGER=yum
LOWLEVEL_PACKAGE_MANAGER=rpm

などとgitを利用し、CentOSに適した設定になっているので、そのまま利用。

/etc/.gitignore に管理したくないファイルを追加

非公開なリポジトリとはいえ、外部のサーバにファイルを置くので、 万が一漏洩しても被害を少なくするためセキュリティ上管理しないファイルを /etc/.gitignoreに記載。
/etc/passwdとか/etc/shadowは管理しない方がいいかと思います。

etckeeperを用いて、/etcをcommit

1
2
sudo etckeeper init
sudo etckeeper commit

ちなみにetckeeperがcommitするタイミングは主に下記の2点

  1. yumを実行したタイミング
  2. dailyでのcron

手動でcommitするときは下記のような感じ

1
sudo etckeeper commit

Bitbucket上のプライベートリポジトリにpush

Bitbucket上に作成したprivate repositoryにpush。 下記はfoobarというプライベートリポジトリにpushする例。

1
2
3
cd /etc
sudo git remote add origin ssh://git@bitbucket.org/glidenote/foobar.git
sudo git push origin master

これで/etc配下のファイルのバージョン管理が出来るようになりました。 検証やpuppetマニフェストの動作確認とかでOSの再インストールを頻繁に行うので、 /etc配下のファイルを管理していると再構築が楽でいろいろと捗ります。

参考

Comments