
Angesichts derVariableStruktur
syncjobs:
- filename: output1.bash
content: data1
- filename: output2.bash
content: data2
Ich möchte es durchgehen und die Dateien erstellen mitansible.builtin.templatemit dem FeldDateinamefür dieZiel. Das erreiche ich mit
- 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 }}"
Ich kann jedoch nicht herausfinden, wie ich das spezifische Problem angehen soll.InhaltFeld aus demSynchronisierungsjobsdict in der Vorlagendatei. Natürlich kann ich auf die Variable zugreifenSynchronisierungsjobs, aber ich muss mich mit demInhaltaus dem zugehörigenWörterbuchfür jede spezifische Iteration.
Ich habe versucht, eine zusätzliche Tatsache festzulegen, wieaktueller_DateinameZuElement.Dateinameinnerhalb einesansible.builtin.block, aber leider scheinen Schleifen für Blöcke nicht unterstützt zu werden.
Antwort1
Genau so wie im Playbook. Es gibt die gleiche Variable in der Vorlage, sodass Sie in der Vorlagendatei {{ item }}
darauf verweisen können . (Eigentlich{{ item.content }}
alledie Playbook-Variablen sind in der Vorlage verfügbar, genau derselbe Satz, der an der bestimmten Stelle des Playbooks existiert, wo es ansible.builtin.template
aufgerufen wurde.)