Ansible v2 を試してみよう
Londonで行われたAnsibleFest にて、Ansible v2の話が発表されたようです。
ユーザーが書くようなPlaybookは100%の互換性があるような作りにしてあるようなので、急いで対応する必要はなさそうですが、
一部のプラグインに関しては、対応が必要な模様です。(そのせいでコレまで出来ていたことができなくなるようなことが無ければよいのですが。。。)
ソースコードは githubで公開されているので、今回試してみることにしました。
以下のセットアップコマンドを実行すれば、開発中のansible v2が利用できます。
v2 環境のセットアップ(2015/2/11現在、py3はまだ動かない模様)
---------------------
(virtualenvなどで、python2.7.xのお試しの環境を作っておく)
$ git clone https://github.com/ansible/ansible.git
$ cd ansible/
$ git submodule update --init --recursive
$ cd v2/
$ source ./hacking/env-setup
$ pip install six
これでansible v2が利用できるようになりました。
試しにバージョンを確認してみましょう
$ ansible --version
ansible 1.v2 (devel 67fb39451a) last updated 2015/02/11 18:28:40 (GMT +900)
v2 の新機能:block(スライドP9)
---------------------
v2 ではblock/rescue/always (名前は変わるかも?)という処理の固まりで表現ができるようになりました。
特定の区間でエラーが発生した場合、どうすると言った処理がかけるようです。
まだまだ開発中ということですが、エラー処理は今まではignore_errorを付けて頑張らなければならなかったところなので、良い機能ですね
利用したPlaybookは以下のとおりです。(ほぼスライドのまま)
内部の実装は綺麗になっていってる様なので、一度v2に移行すれば更に新しい機能が増えていくんじゃないかと思っています。
後この他にもstrategyと言った機能も追加されるようです。
strategyは、linear(コレまでと一緒?)とfreeを準備している様です。
strategyによって、コレまで全ホスト一緒に処理していた内容をバラバラに実行することで素早く実行出来る、というのが売りのようです。
が、freeを指定して見たところエラーで動きませんでした。