【发布时间】:2020-09-30 20:14:48
【问题描述】:
我正在编写一本剧本(用于 AWX)来处理我们的一个网络应用程序的一些后端处理。
通过对 AWX 的 REST 调用传递给 playbook 的额外变量之一用于传递主机
到剧本
hosts: {{target}}
目标可以是单个服务器或服务器列表。
问题:如果主机不是清单组的成员,我如何使用模式跳过主机
例如,如果我希望剧本在库存中的暂存组中跳过服务器
我尝试了以下方法:
hosts: "{{target}}:!staging"
这仅在仅将一个服务器作为目标 var 发送时才有效,但是如果使用列表调用它会失败。
【问题讨论】:
-
当您有多个主机时,您的
target是什么样的? -
@Benoit 感谢您的回答。更改主机列表以使用冒号而不是逗号有效。我确实更新了我的剧本以替换主机中的逗号
hosts: "{{target|replace(',', ':')}}:!staging" -
更新:我只需将分隔符更改为所有冒号或所有逗号 如果我的 playbook 调用时使用逗号分隔的服务器列表
{{ target }},!staging),这现在可以工作了,感谢 @Benoit 和 @Zeitounator您对此的帮助
标签: ansible ansible-awx