【发布时间】:2020-07-29 18:49:24
【问题描述】:
编写文件是呈现 ansible 模板的唯一方法吗?过去,使用 python 和 jinja2,我直接将 jinja 模板渲染为 python vars,并希望我可以使用 ansible 做同样的事情。
我想要做的是获取模板的内容并将其通过管道传输到另一个命令,而无需将模板写入磁盘上的文件并对文件进行分类。可行吗?
【问题讨论】:
编写文件是呈现 ansible 模板的唯一方法吗?过去,使用 python 和 jinja2,我直接将 jinja 模板渲染为 python vars,并希望我可以使用 ansible 做同样的事情。
我想要做的是获取模板的内容并将其通过管道传输到另一个命令,而无需将模板写入磁盘上的文件并对文件进行分类。可行吗?
【问题讨论】:
从模板创建变量有多种选择。对于小型模板,您可以使用带有set_fact 的内联模板:
- name: render a template to a variable
set_fact:
myvar: |-
This is a template.
This host is {{ inventory_hostname }}.
对于更长的模板,您可以使用template 查找:
- name: render a template to a variable
set_fact:
myvar: "{{ lookup('template', 'template_name.j2') }}"
当然,这不仅限于set_fact 模块。您可以在任何可以在 Ansible 中放置字符串值的地方执行此操作。
【讨论】: