首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用'when‘,则jinja2模板分隔符失败

如果使用'when‘,则jinja2模板分隔符失败
EN

Stack Overflow用户
提问于 2020-09-01 08:21:30
回答 1查看 200关注 0票数 2

我有以下代码,其中第一个任务失败,第二个任务产生以下警告:

[WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ VRF }} == 17

我假设这一警告和第一项任务的失败是出于同样的原因。据我所知,变量是不同的类型。我该怎么解决这个问题?

代码语言:javascript
复制
---
- name: PE_CE
  hosts: localhost

  tasks:

  - include_vars: /opt/netsec/ansible/orchestration/capabilities/PE_CE/PE_CE_1.yml
  
  - name: Build PE config Cisco
    template:
      src=/opt/netsec/ansible/orchestration/cisco_templates/PE_CE_CISCO_config_PE.j2
      dest=/opt/netsec/ansible/orchestration/config_outputs/new/{{PE_HOSTNAME}}
    when: "{{ PX_HOSTNAME }} == None"

  - name: Build CE config Cisco
    template:
      src=/opt/netsec/ansible/orchestration/cisco_templates/PE_CE_CISCO_config_CE.j2
      dest=/opt/netsec/ansible/orchestration/config_outputs/new/{{CE_HOSTNAME}}
    when: "{{ VRF }} == 17"

我真正想做的是when: "{{ VRF }} == 17" and "{{ PX_HOSTNAME }} == None",或者像{{ PX_HOSTNAME }}|length < 1"这样的东西

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 09:11:47

您不需要{{}}when。这样做吧:

when: PX_HOSTNAME == "None"when: VRF == "17"

这是一些文档

when: PX_HOSTNAME == "None"将检查PX_HOSTNAME是否包含字符串"None“。

如果要运行该任务(如果任务为空),请执行when: not PX_HOSTNAME或如果要运行该任务,它不是空的,请执行when: PX_HOSTNAME

您也可以使用长度:when: PX_HOSTNAME|length > 0

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63683906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档