Ansibleで遊んだ
成果物は今日のお仕事とQiitaの記事。
http://qiita.com/unarist@github/items/39f5510f95c752c10df1
なんか久々に初めましてから実用レベルまで遊んだ気がする。
とりあえず読むとよさそうなもの
- AdventCalender http://qiita.com/advent-calendar/2013/ansible
- チュートリアル http://yteraoka.github.io/ansible-tutorial/
- 公式 http://docs.ansible.com/
公式ドキュメントはモジュール一覧が楽しい。正直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関係ないところで躓いてばかりだったのがちょっと悲しい。