无法合并两个变量以及带下划线的ansible主机

下面是ansible plugin for Jenkins生成的命令。

ansible-playbook /app/stop.yml -i /app/my-hosts -l test_west -e app_name=test -e environments=west -v

这是我的库存清单文件。

cat my-hosts
[test_west]
10.0.9.88
10.0.9.89

-l选项有助于匹配库存清单主机文件“ test_west”

我的问题是...在主机的ansible剧本中我必须提到什么?

我的剧本如下所示,但这似乎不正确或不需要,因为使用传递给ansible的-l参数匹配主机:

---
- hosts: "{{ app_name + '_' + environments }}

您能建议我在ansible剧本中设置主机吗:,以便与-l参数(即'test_west')相同?

tanchengbo020028020 回答:无法合并两个变量以及带下划线的ansible主机

您应该使用:- hosts: "{{ app_name }}_{{ environments }}"

示例输出:

[root@greenhat-30 tests]$ ansible-playbook -i hosts test.yml -e app_name=test -e environments=west
 [WARNING]: Could not match supplied host pattern,ignoring: test_west


PLAY [test_west] *******************************************************************************************************************************************************************************************************
skipping: no hosts matched

PLAY RECAP *************************************************************************************************************************************************************************************************************

[http_offline@greenhat-30 tests]$ 

您可以看到所选的组是PLAY [test_west]

希望有帮助

本文链接:https://www.f2er.com/3115089.html

大家都在问