Ansible 条件 - 通配符匹配字符串

Ansible 条件 - 通配符匹配字符串

我在 Ansible 任务中有以下条件:

when: ec2_tag_Name == 'testhost01'

它工作正常,但是我想在ec2_tag_Name字段上匹配通配符。

就像这样

when: ec2_tag_Name == 'testhost*'

目标是匹配任何内容,例如testhostx testhost12 testhostABC等等,只要testhost在字符串开头匹配即可。

这可能吗?似乎无法让它工作。

答案1

测试字符串

要将字符串与子字符串或正则表达式进行匹配,请使用“匹配”或“搜索”过滤器

就你的情况而言:

when: ec2_tag_Name is match("testhost.*")

答案2

这也有效。

when: "ec2_tag_Name.startswith('testhost')"

您还可以组合逻辑运算符,例如或者

相关内容