Ansibleの実行結果を通知する


Ansibleのコールバックプラグインを使って、プロビジョニングの実行結果を通知する方法をメモしておきます。
コールバックプラグインについては、公式ドキュメントに概要とサンプルが載っていますので参照してください。
Developing Plugins #Callbacks – Ansible
ここでは、Mac OS Xの通知センター (Notification Center) にAnsibleの実行結果を表示させることを目標とします。

今回作成したプラグインは、以下よりダウンロードできます。
Ansible Callback Plugins – GitHub

環境

環境は以下の通りです。
Ansibleに関しては、Homebrewを利用してインストールしています。詳しくは以下を参考にしてください。
HomebrewとAnsibleでMacの開発環境構築を自動化する

ソフトウェアバージョン
Mac OS X10.10.3
Ansible1.9.1

Ansibleのコールバックプラグインを使って実行結果を通知する

Ansibleには様々なプラグイン機構が備わっています。
Developing Plugins – Ansible
その内のコールバックプラグインを使って、実行結果を通知する方法について見ていきます。
Developing Plugins #Callbacks – Ansible

コールバックプラグインの仕組みは非常に簡単です。以下に CallbackModule Classのテンプレートを示します。実行したいタイミングに合わせて処理を実装しましょう。

今回は、完了後に実行結果を通知させたいので playbook_on_statsメソッドを実装します。

以上で実装は完了です。あとは playbookと同じ階層に callback_pluginsディレクトリを作成し、その中にファイルを設置するだけです。
Playbookを実行してみましょう。実行結果に応じて、通知が表示されるはずです。

notify-the-result-of-ansible-01
notify-the-result-of-ansible-02

Ansibleの実行結果を喋らせる

画面への通知だけでは気づかないかもしれません。それでは実行結果を喋らせましょう。

Macの sayコマンドを利用しています。
成功した場合は、メカニカルな感じで成功を祝福してくれます。自動化バンサイ!
失敗した場合は、「プギャーwwwプロビジョニング失敗だっておwwww」みたいなノリでバカにされることでしょう。
おふざけが許されないような環境の方は、 voice = "-v Alex"あたりにしておけば無難だと思います。

とりあえず声だけでも聞いてみたい人は、Macのターミナルで以下のコマンドを実行してみてください。

Ansibleの実行結果を歌わせる

プロビジョニングの成功や失敗をもっと華やかに演出したい?それなら歌わせましょう。

話がだいぶ横道にそれてきました。そろそろ終わりにしたいと思います。

さて、今回紹介したMacの sayコマンドを利用したプラグインですが、実はAnsibleの公式リポジトリにも準備されているものなんです。そんな遊び心のあるAnsibleが大好きです。他にもサンプルがいくつかありますので、ぜひ参考にしてみてください。
ansible/plugins/callbacks – GitHub

最後になりましたがお知らせです。来る2015年06月19日(金)に福岡でAnsibleの勉強会があります。私は主催ではありませんが参加します。興味のある方はぜひお越しください。
Ansible勉強会@福岡 InnoLab#1

以上です。