Ansible Jinja2模板
如果我们的需求是在100台主机上安装nginx,每台nginx的端口都不一样,我们如何解决呢?很棘手的问题,但是jinja2可以,Ansible通常会使用jinja2模板来修改被管理主机的配置文件,尤其在批量修改多台主机的配置文件时,很便捷。Jinja2文件后缀通常为.j2,是一个里面包含变量的模板文件,使用template模块调用。(template模块和copy模块一样,都是将文件复制到远端主机上去,区别在于template模块可以获取到文件中的变量,而copy则是原封不动的把文件内容复制过去)
1 | [root@ansible ~]#cat keepalived.j2 |
Ansible允许jinja2模板中使用条件判断和循环,但是不允许在playbook中使用。
1
2
3
4
5
6
7
8
9
10
11
12 #循环表达式
{% for i in EXPR %}
{% endfor %}
#条件判断
{% if EXPR %}
{% elif EXPR %}
{% else %}
{% endif %}
#注释
{# COMMENT #}