我有一个 Ansible 角色,我想根据特定条件在特定主机上执行该角色。
我想填充hosts
来自 Ansible Tower 的调查。这是我的剧本:
- name: HTTP Response Deploy Automation
hosts: "{% if geo == 'LHR' %}'dblhr002' {% elif geo == 'SJC' %}'dbsjc003' {% endif %}"
gather_facts: true
roles:
- http-response-deploy
选择 LHR 时出现以下错误:
[WARNING]: Could not match supplied host pattern, ignoring: 'dblhr002'
请注意,当我选择省略主机名周围的引号时,它不起作用。
TLDR;需要实现 Ansible 的条件如下:
if geo == "LHR":
hosts: dblhr002
if geo == "SJC":
hosts: dbsjc003
只要
dblhr002
在库存中列出,您提供的内容就可以正常工作。主机模式仅匹配现有主机,它们不会将新主机添加到清单中。如果您需要动态添加主机,请
add_host
在单独播放中使用任务。