問題タブ [ansible-template]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4756 参照

ansible - ansible テンプレート用に var が定義されている場合の短いバージョン

Ansible テンプレートの Jinja2 では、テンプレートでこのタイプの式を使用できます。

「変数が定義されていない場合、この行を印刷しない」という短いバージョンはありますか?

foo_bar = {{foobar|skip_this_line_if_undefined}} のようなものですか?

0 投票する
10 に答える
335281 参照

ansible - Ansible: 現在のターゲット ホストの IP アドレスを取得する

ロール内の現在のホストの IP アドレスを取得するにはどうすればよいですか?

ホストがメンバーであるグループのリストとホストのホスト名を取得できることは知っていますが、IP アドレスを取得するための解決策が見つかりません。

を使用してホスト名を取得し、を使用{{inventory_hostname}}してグループを取得できます{{group_names}}

{{ hostvars[{{ inventory_hostname }}]['ansible_ssh_host'] }} 私は次のようなことを試しましたip="{{ hostvars.{{ inventory_hostname }}.ansible_ssh_host }}"

0 投票する
1 に答える
66067 参照

ansible - Ansible Jinja2 文字列比較

次のような group_vars で定義された変数を使用して、Jinja2 テンプレート ファイルの変数「env」の値を取得しています。

env可能な 3 つの値はabc、、、defですxyz

この値に基づいて、可能な値を次のように定義したサーバー URL を使用したいと思いますdefaults/main.yml

Jinja2 テンプレートで、私はやろうとしています:

ただし、 、またはの値が付いていServerURL = "server URL not found"ても、常に定義されてしまいます。envabcdefxyz

以下の条件のように、Jinja2 テンプレート (ハードコード) の env を置き換えようとすると、true になります。

つまり、構文は true ですが、"{{env}}"実行時の値は評価されません。

これを解決するために何ができますか?

0 投票する
1 に答える
982 参照

ansible - Ansibleに変数ファイルを含める方法は?

次のプレイブックがあります。

そして、次の Jinja テンプレート:

プレイブックを実行すると、次のエラーが表示されます。

AnsibleError: 文字列のテンプレート化中にテンプレート エラーが発生しました: トークン 'end of print statement' が予期され、'main_body' が取得されました。

Jinjaにファイルを含めるように指示する方法、その名前は以前に定義された事実に保存されていますか?

0 投票する
1 に答える
1073 参照

ansible - 「hostvars」を介してロールのデフォルト値を使用する方法

これに触発された役割を作成しようとしています: ansible-cassandra

このロールには、 variable のデフォルト値がありますcassandra_network_iface

そして、それを介してそれを使用するテンプレートファイルcassandra.yaml.j2hostvars

このテンプレート ファイルをタスクで使用すると、次のようになります。

このエラーがあります:

問題は、変数cassandra_network_ifaceがスコープに定義されていないことですhostvars[host](デバッグタスクで確認しました)。それ以外の場合は、変数を直接使用できます。

cassandra_network_iface私の質問:を通じて変数に到達する方法はありますhostvarsか?

注:ansible 2.1および2.2で試しました