ansible 模板

发布时间: 更新时间: 总字数:502 阅读时间:2m 作者:IP:上海 网址

ansible templdte模块会在ansible控制机中对模板文件进行渲染

介绍

  • template模块 负责将最终生成的文件拷贝到远程主机,并渲染
  • 常见参数
    • owner 指定生成文件的属主
    • group 指定生成文件的属组
    • mode 指定生成文件拷贝到远程主机后的权限,如mode=0644表示,如果需执行权限,则使用 mode=u+x
    • force 覆盖文件
    • backup 备份文件

jinja2

参考Python jinja2 模版使用

基础使用

  • jinja2-demo1.j2
jinja2-demo1.j2 ...

渲染命令:

ansible 172.17.0.3 -m template -a "src=jinj2-demo1.j2 dest=/opt/test"

结果

cat /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() }}
本文总阅读量 次 本站总访问量 次 本站总访客数