Callback プラグイン

callback プラグインを使用すると、イベントの応答時に、Ansible に新たな動作を追加できます。 デフォルトでは、コールバックプラグインは、コマンドラインプログラムの実行時に表示されるほとんどの出力を制御します。 ただし、出力を追加して他のツールと統合し、イベントをストレージバックエンドにまとめるために使用することもできます。

Ansible callback プラグイン

log_plays コールバックは、Playbook イベントをログファイルに記録する方法の例になります。 メール コールバックにより、Playbook の失敗時にメールが送信されます。

また、say コールバックは、Playbook のイベントに関連するコンピューターによる音声合成に応答します。

callback プラグインの有効化

カスタムの callback を有効にするには、カスタムのプラグインを、ロール内の Play の隣りにある callback_plugins ディレクトリーに配置するか、ansible.cfg で設定した callback ディレクトリーソースの 1 つに配置します。

プラグインは、アルファベット順に読み込まれます。たとえば、1_first.py という名前で実装されているプラグインは、2_second.py とう名前のプラグインファイルより先に実行されます。

Ansible に同梱されるほとんどの callback プラグインはデフォルトで無効にされており、このプラグインを機能させるには、ansible.cfg ファイルでホワイトリスト化する必要があります。以下に例を示します。

#callback_whitelist = timer, mail, profile_roles, collection_namespace.collection_name.custom_callback

ansible-playbook の callback プラグインの設定

コンソールの出力の主要マネージャーとして指定できるプラグインは 1 つだけです。デフォルトを置き換える場合は、サブクラスに CALLBACK_TYPE = stdout を定義して、ansible.cfg に stdout プラグインを設定する必要があります。以下に例を示します。

stdout_callback = dense

または、カスタムのコールバックの場合は以下を実行します。

stdout_callback = mycallback

デフォルトでは、この設定は ansible-playbook にだけ影響があります。

ad-hoc コマンドへの callback プラグインの設定

ansible の ad hoc コマンドは、特に標準出力 (stdout) に異なるコールバックプラグインを使用します。 したがって、Ansible Configuration Settings には、上記のように定義した標準出力コールバックを使用するように追加の設定が必要です。

[defaults]
bin_ansible_callbacks=True

これを環境変数として設定することもできます。

export ANSIBLE_LOAD_CALLBACK_PLUGINS=1

プラグイン一覧

ansible-doc -t callback -l を使用すると、利用可能なプラグインの一覧を表示できます。 特定のドキュメントと例を参照する場合には、ansible-doc -t callback <plugin name> を使用してください。

See also

Action プラグイン
Ansible Action プラグイン
Cache プラグイン
Ansible Cache プラグイン
Connection プラグイン
Ansible connection プラグイン
inventory プラグイン
Ansible inventory プラグインの使用
Shell プラグイン
Ansible Shell プラグイン
Strategy プラグイン
Ansible Strategy プラグイン
vars プラグイン
Ansible Vars プラグイン
ユーザーのメーリングリスト
ご質問はございますか。 Google Group をご覧ください。
webchat.freenode.net
#ansible IRC chat channel