methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

Chef-solo の代わりに fabric を使う

Fabricssh 経由でリモートをゴニョゴニョするツールなので、デプロイツールとして見られがちですが、 cuisine など冪等な操作をサポートするライブラリを組み合わせれば手軽な構成管理ツールになります。

chef-solo に比べてターゲットとなるマシンへのインストールが不要なので vagrant と EC2 の Amazon AMI で同じように home ディレクトリを構築するようなスクリプトを書くことも可能です。 また fabtools を使えば、簡単に vagrant を対象にすることができます。

インストール:

$ pip install fabric fabtool cuisine

fabfile.py を作ります (サンプル):

使い方:

$ fab vagrant package_upgrade setup_devtools  # 開発マシンにいつもインストールしてるツール群をインストールする
$ fab vagrant create_user  # vagrant と別にアカウントを作成し、 ssh 公開鍵を設定しておく