1

我的组文件中有一个复杂的 Ansible 设置,其中包含多个主机。像这样的东西。

# hosts/groups

[local]
127.0.0.1

[server1]
server1.domain.com

[server2]
server2.domain.com

[group1]
local
server1

[group2]
local
server2

这样,我可以针对 localhost:2222 运行这两个组,这是我的 Vagrant 框,但是,它们都将被执行。对于测试,我非常喜欢选择我想测试的设置。我已经尝试过 --extra-vars 参数和条件,这非常难看。有没有办法将 extra_vars 参数与主机配置一起使用。使用类似...的命令

ansible-playbook playbook.yml -i hosts -l 127.0.0.1:2222 --extra-vars "vhost=server1.domain.com"

还是我完全错了。

4

1 回答 1

1

我不认为有一个简单的方法可以通过改变你执行 Ansible 的方式来做到这一点。

我能想到的最好的选择可能是重新组织你的剧本。如果您创建group1.yamland group2.yaml,每个都包含设置group1and所需的语句group2,那么您可以运行类似

[$]> ansible-playbook -l 127.0.0.1:2222 group1.yaml

group1针对您的开发实例运行配置。

如果您仍然想要一种方便的方式来运行所有任务,请更改您的playbook.yaml以包含其他剧本:

- include: group1.yaml
- include: group2.yaml
于 2016-06-24T16:57:28.430 回答