鉴于以下清单:
[group1]
myserver.domain.com ansible_ssh_user=myUser
[group2]
localhost ansible_connection=local
我怎样才能在group1
主机上执行我的剧本?
当我使用--limit=group1
时,它还包括localhost
我尝试了--limit='!group2'
,它也无效。
有什么想法吗?
提前谢谢
修改 我使用的是ansible 1.9.2。
答案 0 :(得分:0)
您使用的是哪个版本?它在版本2.1.2.0中具有相关性。
这是我的test.inventory文件
[group1]
myserver.domain.com ansible_ssh_user=myUser
[group2]
localhost ansible_connection=local
这是我的测试手册test.yml
- name: Test limit
hosts: all
tasks:
- file: path=/tmp/mydir state=directory
我得到了预期的运行
ansible-playbook -i test.inventory --limit group2 test.yml
和
ansible-playbook -i test.inventory --limit '!group1' test.yml
答案 1 :(得分:0)
我无法在你的ansible版本上测试它。我建议你改变你的剧本中的目标主持人定义的解决方法如下:
所以你会有类似的东西
- name: Test limit
hosts: "{{ hosts_nodes | default('all')}}"
tasks:
- file: path=/tmp/mydir state=directory
并运行playbook添加其他环境变量hosts_nodes
ansible-playbook -i test.inventory test.yml -e hosts_nodes=group1