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

Passing host group name in ansible-playbook command line

我有一个库存文件

示例:

[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

您可以使用--limit来指定群组,

ansible-playbook -i ./example playbook-x.yml --limit groupa

hosts playbook 字段也可用于定位特定组,例如,

- hosts: groupa
  tasks:
    ...

我认为您想动态定位广告资源组;一种简单的方法是将主机作为剧本中的变量传递。

---
hosts: “{{target}}”
tasks:

虽然 运行 playbook 传递目标变量,如“ansible-playbook playbook-x.yml -i ./example -e target=groupa”