filter プラグイン

Filter プラグインはデータを操作します。適切なフィルターを使用すると、特定の値の抽出、データ型と形式の変換、数学的な計算の実行、連結文字列や連結文字列の実行、日付と時間の挿入などを行うことができます。Ansible は Jinja2 に同梱されている standard filters を使用して、特別な filter プラグインを追加します。create custom Ansible filters as plugins が可能です。

filter プラグインの有効化

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

filter プラグインの使用

フィルターは、プレイ、変数ファイル、あるいは template モジュールの Jinja2 テンプレートでクラスなど、Ansible の中でテンプレートを使用できる場所であれば使用できます。フィルタープラグインの使用の詳細は、フィルターを使用したデータの操作 を参照してください。フィルターは任意のタイプのデータを返すことができますが、常にブール値 (True または False) を返す場合は、代わりにテストする必要があります。

vars:
   yaml_string: "{{ some_variable|to_yaml }}"

フィルターは、Ansible でデータを操作するのに推奨される方法です。フィルターは、通常 | の前にあり、フィルターの左側にある式はフィルターの最初の入力であるため、特定できます。ほとんどのプログラミング関数と同様に、追加のパラメーターはフィルター自体に渡すことができます。これらのパラメーターは、positional (順番に渡す) または named のいずれかになります。両方のタイプを渡す場合は、位置引数が最初に指定する必要があります。

passing_positional: {{ (x == 32) | ternary('x is 32', 'x is not 32') }}
passing_extra_named_parameters: {{ some_variable | to_yaml(indent=8, width=1337) }}
passing_both: {{ some_variable| ternary('true value', 'false value', none_val='NULL') }}

ドキュメントでは、フィルターには常に c(|) の左側の式に対応する C(_input) オプションがあります。ドキュメントの AC(positional:) フィールドは、どのオプションが位置引数で、どの順番に実行する必要があるかを示します。

プラグイン一覧

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

参考

Ansible Playbook

Playbook の概要

inventory プラグイン

inventory プラグイン

callback プラグイン

callback プラグイン

test プラグイン

test プラグイン

lookup プラグイン

lookup プラグイン

User Mailing List

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

リアルタイムチャット

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