Ansibleで遊んだ

成果物は今日のお仕事とQiitaの記事。
http://qiita.com/unarist@github/items/39f5510f95c752c10df1

なんか久々に初めましてから実用レベルまで遊んだ気がする。

とりあえず読むとよさそうなもの

公式ドキュメントはモジュール一覧が楽しい。正直Playbookの説明とかは文章ばかりでつらい。

設定ファイルの配置

templateモジュールでJinja2ってテンプレエンジンが使えるけど、/etc/にありがちな設定ファイルならlineinfileで結構事足りる。

モジュールがないのでコマンド実行したい

commandモジュールやshellモジュール。
実行済みチェックや結果チェックが少々面倒だったりもするけど、「ファイルが存在しなければ」という条件ならcreatesオプションが使えるので簡単。

ループとか

with_items便利。複数の値をまとめて指定したければ辞書形式で。

playbook内でsshのポート変えたい

Ansibleが使うsshのポートは環境変数みたいな扱いになってるので、結構好きなとこで変更できるみたい。
応用として、実行時にいくつかのポート番号を試す方法も。
http://serverfault.com/questions/545978/how-to-handle-ssh-port-changes-with-ansible
task増えるのがちょっと気になるけど。

実行ユーザー

sudo使えます。これもsshのポートと同じような扱いなので、基本はrootだけどここだけpostgresみたいなこともできる。
あとファイル系のモジュールは所有ユーザーやグループ指定できる。

感想

使えるモジュールがいっぱいあるUbuntu系で遊ぶのが楽しいと思います。はい。
仕事に関して言えば、初Ansibleで鯖セットアップしようぜって話なのに、Ansible関係ないところで躓いてばかりだったのがちょっと悲しい。