Hack the World!

プログラミングや,ネットワークに関する話題を取り扱っています.知識をつけて,優雅にお仕事するのを目指しています.

Ansible v2 を試してみよう

Londonで行われたAnsibleFest にて、Ansible v2の話が発表されたようです。

 

 

ユーザーが書くようなPlaybookは100%の互換性があるような作りにしてあるようなので、急いで対応する必要はなさそうですが、

一部のプラグインに関しては、対応が必要な模様です。(そのせいでコレまで出来ていたことができなくなるようなことが無ければよいのですが。。。)

 

 

ソースコードgithubで公開されているので、今回試してみることにしました。

ansible/ansible · 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 (名前は変わるかも?)という処理の固まりで表現ができるようになりました。

特定の区間でエラーが発生した場合、どうすると言った処理がかけるようです。

 

f:id:graceful_life:20150211192942p:plain

 

まだまだ開発中ということですが、エラー処理は今まではignore_errorを付けて頑張らなければならなかったところなので、良い機能ですね

 

利用したPlaybookは以下のとおりです。(ほぼスライドのまま)

 

ansible v2 block

 

 

 内部の実装は綺麗になっていってる様なので、一度v2に移行すれば更に新しい機能が増えていくんじゃないかと思っています。

  

 

後この他にもstrategyと言った機能も追加されるようです。

strategyは、linear(コレまでと一緒?)とfreeを準備している様です。

strategyによって、コレまで全ホスト一緒に処理していた内容をバラバラに実行することで素早く実行出来る、というのが売りのようです。

 が、freeを指定して見たところエラーで動きませんでした。