需要为所有主机一一遍历源文件。
- hosts: epson*
become: yes
tasks:
- name: replace id
vars:
id: abc
template:
src: epson1.j2
dest: /home/epson.config
HOSTS FILE
[epson1]
1.1.1.1
[epson2]
1.1.1.1
[epson3]
1.1.1.1
and many more
epson1.j2
create element edge0 {
state="ENABLED"
id="{{ id }}"}
epson2.j2
create element edge1 {
state="ENABLED"
id="{{ id }}"}
我有很多模板文件,例如epson1.j2,epson2.j2等。现在,我能够为1个主机和1个文件执行模板变量替换。如何为所有主机处理所有文件。
like - host:epson1, src: epson1.j2, dest: /home/epson.config
host:epson2, src: epson2.j2, dest: /home/epson.config
host:epson3, src: epson3.j2, dest: /home/epson.config
need looping inside src for every hosts
您应该能够简单地通过使用inventory_hostname魔术变量来完成此操作。
- hosts: epson*
become: yes
tasks:
- name: replace id
vars:
id: abc
template:
src: {{ inventory_hostname }}.j2
dest: /home/epson.config
该播放将为每个主机运行一次,并且将使用正确的.j2
。