> 文章列表 > ansible在playbook中使用jinja2模板

ansible在playbook中使用jinja2模板

ansible在playbook中使用jinja2模板

简介

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 templatetemplate:src: /../.../file.j2dest: /../.../file

模板文件中可以使用控制结构或者循环

示例

{% for user in users %}
{{ user }}
{% endfor %}{% if finished %}
{{ result }}
{% endif %}