如何评估Ansible任务的when条件

时间:2015-12-23 06:27:04

标签: regex ansible ansible-playbook

我有一个具有以下值的变量:

   name_prefix: stage-dbs

我在我的剧本中有一个任务,必须检查这个变量并查看它是否包含* -dbs,如果条件满足则应该处理。我写了这样的话:

- name: Ensure deployment directory is present
  file:
    path=/var/tmp/deploy/paTestTool
    state=directory
  when: name_prefix =="*-dbs" # what condition is required here to evaulate the rest part of variable?? 

应该使用什么样的正则表达式模式或如何在这里使用正则表达式?

2 个答案:

答案 0 :(得分:12)

无需使用正则表达式进行模式搜索。您可以使用以下搜索:

when: name_prefix | search("stage-dbs")

一定会奏效。

答案 1 :(得分:0)

不确定今天是否存在过滤器search

使用https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#searching-strings-with-regular-expressions的解决方案:

when: name_prefix | regex_search("^stage-dbs(.*)$")