Ansible の実行結果を Datadog へ連携できます。
Python 2.7 で試しました。 3系だと現状そのままだと Syntax Error となるので、 datadog_callback.py
の一部書き換え(修正)が必要です。
Ansible Integration
Datadog 上で Ansible Integration を有効化します。(初回のみ)
5分程で有効化が完了します。
Setup
必要なライブラリ(datadogpy、pyyaml)をインストールしておきます。
$ pip list | grep -i -e "datadog" -e "pyyaml" datadog (0.16.0) PyYAML (3.12)
Ansible のコールバック機能を利用して連携します。 ansible-datadog-callback を適当なディレクトリに clone します。
datadog_callback.py
があれば良いので、clone することは必須ではないです。
$ cd /tmp $ git clone https://github.com/DataDog/ansible-datadog-callback.git
Ansible へのコールバックプラグイン追加
既存の Playbook と同一階層に callback_plugins
ディレクトリを作成し、 datadog_callback.py
を格納します。
$ mkdir ansible/callback_plugins $ cp /tmp/ansible-datadog-callback/datadog_callback.py ansible/callback_plugins
Datadog API キー用の yml を作成します。
$ echo "api_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" > ansible/callback_plugins/datadog_callback.yml
以下のような階層になりました。
ansible ├── main.yml ├── callback_plugins │ ├── datadog_callback.py │ └── datadog_callback.yml ├── group_vars │ └── main.yml ├── hosts ├── roles │ ├── hogehoge ・・・
Ansible Playbook 実行
通常通り実行します。
$ cd ansible $ ansible-playbook -i hosts main.yml
結果
メトリクスとしては、 タスクの正常、失敗、スキップ、到達不能、変更無しの数と Playbook の実行時間が取得できます。
Events
ansible-playbook実行時、成功/失敗のイベントが生成されます。 failure, unreachable だと Error として作成します。
Event Monitor で失敗時に通知させるには、 sources:ansible, status:error
と Playbook名で絞り込みます。
Integration Dashboards
Ansible のダッシュボード で見ると以下のような感じになります。