for循环可以内嵌if判断
示例
cat item.yml
---
- hosts: all
remote_user: root
vars:
- list: #list变量中有三段值,和字典类似
- web1: #值1
port: 81
name: zhangsan
rootdir: /data/web1
- web2: #值2
port: 82
name: lisi
rootdir: /data/web2
- web3: #值3
port: 83
name: wangwu
rootdir: /data/web3
tasks:
- name: copy configuartion
template: src=for.conf.j2 dest=/data/for.conf
cat template/for.conf.j2
{% for i in list %}
server{
listen {{ i.port }} #持续循环取值
servername {{ i.name }}
document {{ i.rootdir }}
}
{% endfor %}
for循环语法格式
{% for i in ports %} #for循环,将ports中的值附加为 i
server{ #固定格式
取值列表
}
{% endfor %}
#开头是for循环,就以endfor结尾,如果是if判断,就是endif结尾
查看输出结果
server{
listen 81
servername zhangsan
document /data/web1
}
server{
listen 82
servername lisi
document /data/web2
}
server{
listen 83
servername wangwu
document /data/web3
}