Ansible - 使用模板多循环生成文件

Ansible - Generating a file with template multiple loops

我有这些变量:

ddns_domains:
  - domain: domain1.com
    hosts:
      - "@"
      - "cat"
      - "dog"
  - domain: domain2.com
    hosts:
      - "ghost"
      - "ship"
      - "house"
      - "door"
  - domain: domain3.com
    hosts:
      - "@"
      - "desk"

我想遍历它们并生成这样的文件:

@ domain1.com
cat domain1.com
dog domain1.com
ghost domain2.com
ship domain2.com
house domain2.com
door domain2.com
@ domain3.com
desk domain3.com

我设法正确调试它们:

---
- name:
  debug:
    msg: "{{ item.0.domain }} {{ item.1 }}"
  with_subelements:
    - "{{ ddns_domains }}"
    - hosts

但是我无法制作模板。我不断收到变量未定义错误。

非常感谢任何帮助。 :)

这是template

shell> cat ddns.txt.j2
{% for i in ddns_domains %}
{% for host in i.hosts %}
{{ host }} {{ i.domain }}
{% endfor %}
{% endfor %}

下面的任务

    - template:
        src: ddns.txt.j2
        dest: ddns.txt

给你想要的

shell> cat ddns.txt
@ domain1.com
cat domain1.com
dog domain1.com
ghost domain2.com
ship domain2.com
house domain2.com
door domain2.com
@ domain3.com
desk domain3.com