
与えられた変数構造
syncjobs:
- filename: output1.bash
content: data1
- filename: output2.bash
content: data2
ループしてファイルを作成したいのですがansible.組み込みテンプレートフィールドを使用するファイル名のために目的地. これを実現できるのは
- name: Create scripts
ansible.builtin.template:
src: template.bash.j2
dest: /opt/bin/{{ item.filename }}
owner: root
mode: "u+x,o-r"
backup: true
with_items: "{{ syncjobs }}"
しかし、具体的な問題にどう対処したらよいか分からないコンテンツフィールドから同期ジョブテンプレートファイル内のdict変数にアクセスすることもできます同期ジョブ、しかし、私はコンテンツ関連分野から辞書特定の反復ごとに。
私は次のような追加の事実を設定しようとしました現在のファイル名にアイテム.ファイル名内部のansible.組み込みブロックただし、残念ながら、ループはブロックではサポートされていないようです。
答え1
プレイブックと全く同じ方法です。テンプレートにも同じ変数があるので、テンプレートファイルで{{ item }}
参照できます。(実際は、{{ item.content }}
全てプレイブック変数はテンプレートで使用可能であり、プレイブックの特定の場所 (がansible.builtin.template
呼び出された場所) に存在するものと同じセットです。