简介
ansible将jinja2模板系统用于模板文件,使用jinja2语法引用playbook中的变量。
变量和表达式位于标记或分隔符之间
分隔符
表达式或逻辑(循环):{% EXPR %}
表达式或变量的结果:{{ EXPR }}
注释:{# COMMENT #}
构建jinja2模板
jinja2模板元素构成:数据、变量和表达式
使用模板时,变量和表达式被替换为对应的值,模板中可以使用playbook的vars部分定义的变量,也可以使用受管主机的事实变量。
ansible system_hostname -i inventory_file -m setup命令可以查看受管主机的事实变量
部署jinja2模板
jinja2通过template模块部署到受管主机,支持将控制节点的本地文件转移到受管主机
template模块语法
tasks:
- name: user template
template:
src: /../.../file.j2
dest: /../.../file
模板文件中可以使用控制结构或者循环
示例
{% for user in users %}
{{ user }}
{% endfor %}
{% if finished %}
{{ result }}
{% endif %}