无法连接两个变量以及 ansible 主机的下划线

Unable to concat two variables along with underscore for ansible hosts

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

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

这是我的 Ansible Inventory 主机文件。

cat my-hosts
[test_west]
10.0.9.88
10.0.9.89

-l 选项有助于匹配 ansible 清单主机文件 'test_west'

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

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

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

你能建议我应该在我的 ansible playbook 中设置 hosts: 到什么吗,所以它与 -l 参数相同,即 'test_west' ?

你应该使用:- 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]

希望对您有所帮助