無印吉澤

Site Reliability Engineering(SRE)、ソフトウェア開発、クラウドコンピューティングなどについて、吉澤が調べたり試したことを書いていくブログです。

Ansible 2.0 で追加されたモジュールおよびオプション一覧を無理矢理作る

f:id:muziyoshiz:20160313233740p:plain:w640

Ansible 2.0 の売りの一つ:新モジュールの豊富さ

Ansible 2.0 Has Arrived(日本語訳:Ansible 2.0リリース!)のなかで、Ansible 2.0 は「200個以上の新モジュール」を同梱している、と謳われています。

Ansible 2.0 also continues our long “batteries included” tradition by including over 200 new modules. Ansible 2.0 Has Arrived

モジュールの一覧は All Modules (Ansible Documentation) にあります。個々のモジュールのページを開くと "New in version 2.0." などと書いてあるのですが、2.0 で追加されたモジュールの一覧は存在しないようです。

しかし、Ansible 2.0 に移行したら、せっかくだから 2.0 でしか使えないモジュールやらオプションを使ってみたいものです。そこで、このページをクロールして、Ansible 2.0 で追加されたモジュールとオプションを列挙してみました。

今回実装したクローラ

Ruby のライブラリ Anemone を使ったクローラを書きました。良い機会なので「Rubyによるクローラー開発技法」を一通り読んでから書いてみましたが、こちらは既存のライブラリで実現できることを一通り把握できる良い本でした。

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

今回実装したクローラは、以下のような動作を行います。

  • All Modules (Ansible Documentation) からリンクされている、末尾が _module.html のファイルをすべて辿る
  • ページの冒頭に New in version 2.0. と書いてあれば、Ansible 2.0 の新モジュールと見なす
  • Options の表に、(Added in 2.0) と書いてあるパラメータがあれば、Ansible 2.0 の新オプションを含むモジュールと見なす
  • サイドバーの表示をチェックして、そのモジュールが属するカテゴリを判別する
  • クロールした結果を、Markdown 形式で出力する

このクローラのソースコードは Gist で公開しました。引数を変えれば、過去のバージョン(1.9 とか)で追加されたモジュールの一覧や、次の 2.1 で追加されるモジュールの一覧を作ることもできます。興味のある方は手元で動かしてみてください。

クローラのソースコード(Gist): Crawler to create a list of new modules in Ansible 2.0

クローラの実行結果

2016年3月20日現在、All Modules (Ansible Documentation) には495件のモジュールが掲載されています。

今回のクローラを実行した結果、Ansible 2.0 で追加されたモジュールは194個、以前からあるモジュールに追加されたオプションは155個でした。あれ、200個以上の新モジュールって話では……? まあ、大体合ってるからいいですよね。

結果をざっと見てみると、確かにクラウド関係のモジュール(Cloud Modules)が130個と、群を抜いて多かったです。他には expectfind なんていう、以前からありそうな名前のモジュールも、2.0 で新たに追加されたようです。Zabbix 関係のモジュールもありますね。

ざっと見てみて、使いたいモジュールが見つかったら、思い切って Ansible 2.0 に移行してみるのも良いかもしれません。その際は、以前に書いた Ansible 2.0 移行事例をご参考ください(職場ブログの宣伝)。

recruit.gmo.jp

以下、クローラのソースコードと、自動生成したモジュール、オプションの一覧です。目次ありの一覧を見たい方は、Qiita に同じ内容を貼っておいたので、そちらをご覧ください。

qiita.com

A list of new modules and options in Ansible 2.0