web-dev-qa-db-ja.com

Jinja2のAnsibleコンテキストに別のJinja2テンプレートを含めたい

多くの変数を設定するAnsibleプレイブックがあります。プレイブックの1つにこのタスクがあります。

- name: create config file 
  template:
    src: 'templates/main_config.j2'
    dest: "{{ tmp_dir }}/main_config.json"

テンプレートmain_config.j2は、親のAnsibleプレイブックとタスクで変数として定義されている文字列を書き込みます。

Ansible変数の値に基づく別のJinja2テンプレートを含めたいのですが。

{% include "./templates/configurations.j2" %}, 
{% include "./templates/security.j2" %},
{% include './templates/' + {{ job }} + '_steps.j2' %}

jobは、親プレイブックに設定されたAnsible変数です。

これは機能していません。何が問題でしょうか?

8
saurabh daga

Jinja2式を開く必要はありません({{ ... }})ステートメント内の変数を参照するには({% ... %})。変数名を直接使用できます。

{% include './templates/' + job + '_steps.j2' %}
16
techraf