无法连接两个变量以及 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]
。
希望对您有所帮助
下面是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]
。
希望对您有所帮助