lookup

lookup プラグインを使用すると、外部データソースにアクセスできます。すべてのテンプレートと同様、このプラグインは Ansible コントロールマシンで評価されファイルシステムの読み取り、外部データストアおよびサービスへの接続を含めることができます。このデータは、Ansible で標準のテンプレートシステムを使用して利用できるようになります。

Note

  • ルックアップは、リモートコンピューターではなく、ローカルコンピューターで行われます。
  • これは、実行したスクリプトのディレクトリーで実行されるローカルタスクではなく、ロールまたはプレイを含むディレクトリーで実行します。
  • wantlist=True を lookup に渡して、Jinja2 テンプレート「for」ループで使用できます。
  • ルックアップは高度な機能です。Ansible プレイの知識を組み込むには、十分な実用的な知識が必要です。

Warning

lookup によってはシェルに引数を渡します。リモート/信頼されていないソースから変数を使用する場合には、|quote フィルターで、安全に使用できるようにします。

lookup および loop

lookup プラグイン は、シェルコマンドやキー値ストアなどの外部データソースにクエリーする手段です。

Ansible 2.5 以前は、ほとんどの場合、ルックアップはループの with_<lookup> 構造で間接的に使用されていました。Ansible バージョン 2.5 以降、lookup は loop キーワードに入力される Jinja2 式の一部としてより明示的に使用されます。

lookup および変数

lookup を使用する 1 つの方法は、変数を設定することです。これらのマクロは、タスク (またはテンプレート) で使用されるたびに評価されます。

vars:
motd_value: “{{ lookup(‘file’, ‘/etc/motd’) }}”
tasks:
  • debug:
    msg: “motd value is {{ motd_value }}”

詳細と、利用可能な lookup プラグインの完全な一覧は、プラグインの使用 を参照してください。

See also

Playbook の使用
Playbook の概要
条件 (Conditional)
Playbook の条件付きステートメント
変数の使用
変数の詳細
ループ
Playbook でのループ
ユーザーメーリングリスト
ご質問はございますか。 Google Group をご覧ください。
irc.freenode.net
IRC チャットチャンネル #ansible