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 チャットチャンネルへの参加方法