ansible templdte模块会在ansible控制机中对模板文件进行渲染
介绍
template模块负责将最终生成的文件拷贝到远程主机,并渲染- 常见参数
owner指定生成文件的属主group指定生成文件的属组mode指定生成文件拷贝到远程主机后的权限,如mode=0644表示,如果需执行权限,则使用mode=u+xforce覆盖文件backup备份文件
jinja2
基础使用
jinja2-demo1.j2
渲染命令:
ansible 172.17.0.3 -m template -a "src=jinj2-demo1.j2 dest=/opt/test"结果
if
{% if testnum > 3 %}
greater than 3
{% else %}
<= 3
{% endif %}for
{% for 迭代变量 in 可迭代对象 %}
{{ 迭代变量 }}
{% endfor %}转义
{{/}}转义
{{ '{{' }}
{{ '}}' }}
{{ '{{ test redhat }}' }}
{{ '{% test redhat %}' }}
{{ '{# test redhat #}' }}- raw块转义:原始输出,不被jinja2解析
$ cat test2.j2
{% raw %}
{{ test }}
{% test %}
{# test #}
{% if %}
{% for %}
{% endraw %}宏
$ cat test4.j2
{% macro testfunc() %}
test string
{% endmacro %}
{{ testfunc() }}
# 默认参数,也可支持 varargs、kwargs、caller 参数
{% macro testfunc1(tv1=111) %}
test string
{{tv1}}
{% endmacro%}
{{ testfunc1() }}