Ansible: 関連変数を持つテンプレートをループする

Ansible: 関連変数を持つテンプレートをループする

与えられた変数構造

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呼び出された場所) に存在するものと同じセットです。

関連情報