有条件地运行ansible角色处理程序

时间:2019-05-17 16:19:56

标签: ansible

我有一个任务可以很好地触发角色处理程序,并且该处理程序也可以正常工作。现在,我试图确保处理程序仅在满足条件时运行。就我而言,它是我通过vars_input读取的变量值。但是,我要例外了。有关如何解决此问题的任何想法?

任务示例(在role / tasks / main.yml文件中):

- name: test conditional handler
  command: /bin/true
  notify:
   - test handler

处理程序(在role / handlers / main.yml文件中):

---
- name: test handler
  uri: 
    url: http://validurl
    method: GET
  when: {{ test_var }} != "some value"

我可以访问任务中的test_var值。

例外:

Points to the "!=".  
We could be wrong, but this one looks like it might be an issue with missing quotes. 

1 个答案:

答案 0 :(得分:2)

您不需要在when语句中使用大括号表示法(例如{{ test_var }}),因为该值被解释为Jinja2表达式。以下将起作用:

when: test_var != "some value"