在ansible playbook命令行中传递主机组名称

在ansible playbook命令行中传递主机组名称,ansible,ansible-2.x,ansible-inventory,Ansible,Ansible 2.x,Ansible Inventory,我有一份库存文件 例如: [groupa] 10.102.16.100 10.102.16.101 [groupa:vars] app=testapp-a env=staging [groupb] 10.102.16.102 10.102.16.103 [groupb:vars] app=testapp-b env=production 现在如果我跑 ansible-playbook -i ./example playbook-x.yml 这将对所有主机运行。 有没有办法在命令行中指定

我有一份库存文件

例如:

[groupa]
10.102.16.100
10.102.16.101

[groupa:vars]
app=testapp-a
env=staging

[groupb]
10.102.16.102
10.102.16.103

[groupb:vars]
app=testapp-b
env=production
现在如果我跑

ansible-playbook -i ./example playbook-x.yml
这将对所有主机运行。 有没有办法在命令行中指定组名

我期待着像这样的事情

ansible-playbook -i ./example --group-name groupb playbook-x.yml
您可以使用这样指定组

ansible-playbook -i ./example playbook-x.yml --limit groupa
hosts
playbook字段也可用于针对特定的组,如

-主机:groupa
任务:
...

我认为您希望动态地以库存组为目标;一种简单的方法是将主机作为变量传递到剧本中

---
hosts: “{{target}}”
tasks:
在运行playbook时,传递目标变量,如'ansible playbook playbook-x.yml-i./example-e target=groupa'