Ansible:如何在Vagrant中运行特定的主机?

时间:2016-06-20 22:52:29

标签: ansible ansible-inventory

我有一个复杂的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"

或者我完全错了。

1 个答案:

答案 0 :(得分:1)

我不认为通过改变你如何执行Ansible来做到这一点很简单。

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

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

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

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

- include: group1.yaml
- include: group2.yaml