小编Dri*_*zzt的帖子

Ansible:如果文件存在则包含该文件,如果不存在则不执行任何操作

我在Ansible中有一个Jinja2模板,我需要有条件地包含一些文件.

基本上,我有一个for循环,其中包含可能存在或可能不存在的"子部分".下面的示例演示了如果所有工具实际上都有一个'pbr.j2'文件可以使用的基本代码,但它崩溃了,因为Ansible找不到一些文件:

{% for tool in tools %}
   {% set template = 'tools/' + tool.name + '/pbr.j2' %}
   {% include template %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我也曾尝试existsis_file过滤器,但我总是得到"错误的",即使该文件存在.这是我尝试过的示例代码:

{% for tool in tools %}
   {% set template = 'tools/' + tool.name + '/pbr.j2' %}
   {% if template|exists %}
      {% include template %}
   {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

最后一个示例的结果是没有包含文件.如果我更换existsis_file,我得到了相同的行为.

我需要改变什么来完成我想要的东西?

jinja2 ansible

2
推荐指数
1
解决办法
3644
查看次数

标签 统计

ansible ×1

jinja2 ×1