在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'