callback プラグイン

callback プラグインを使用すると、イベントに応答するときに Ansible に新しい動作を追加できます。デフォルトでは、callback プラグインは、コマンドラインプログラムを実行時に表示される出力の大半を制御しますが、他の出力を追加し、他のツールと統合し、ストレージバックエンドにイベントをマーシャリングすることにも使用できます。必要に応じて:ref:`create custom callback plugins <developing_callbacks>`できます。

callback プラグインの例

log_plays のコールバックは、Playbook のイベントをログファイルに記録する一例で、mail コールバックは Playbook の失敗時にメールを送信します。

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

callback プラグインの有効化

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

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

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

#callbacks_enabled = 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 にのみ影響を及ぼします。

アドホックコマンドへの callback プラグインの設定

ansible アドホックコマンドは、特に stdout には別の callback プラグインを使用するため、上記に定義した stdout callback を使用するには、追加する必要がある Ansible 構成設定 にさらに設定を追加する必要があります。

[defaults]
bin_ansible_callbacks=True

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

export ANSIBLE_LOAD_CALLBACK_PLUGINS=1

callback プラグインのタイプ

callback プラグインには 3 種類あります。

stdout callback プラグイン:

これらのプラグインは、メインコンソール出力を処理します。これらのうち、アクティブにできるのは 1 つだけです。

aggregate callback プラグイン:

aggregate callback は、stdout callback の隣に追加のコンソール出力を追加できます。これは、Playbook 実行の終了時の集計情報、追加のタスクごとの出力などの可能性があります。

notification callback プラグイン:

notification callback は、他のアプリケーション、サービス、またはシステムに通知します。これには、データベースへのログ記録、インスタントメッセージングアプリケーションでのエラーの通知、サーバーに到達できない場合のメールの送信などがあります。

プラグイン一覧

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

参考

action プラグイン

action プラグイン

Cache プラグイン

Cache プラグイン

connection プラグイン

connection プラグイン

inventory プラグイン

inventory プラグイン

shell プラグイン

shell プラグイン

strategy プラグイン

strategy プラグイン

vars プラグイン

vars プラグイン

User Mailing List

ご質問はございますか。Google Group をご覧ください。

リアルタイムチャット

Ansible チャットチャンネルへの参加方法