我有一个复杂的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"
或者我完全错了。
答案 0 :(得分:1)
我不认为通过改变你如何执行Ansible来做到这一点很简单。
我能想到的最佳选择包括可能重新组织你的剧本。如果您创建group1.yaml
和group2.yaml
,每个都包含分别设置group1
和group2
所需的语句,那么您可以运行类似
[$]> ansible-playbook -l 127.0.0.1:2222 group1.yaml
仅针对您的开发实例运行group1
配置。
如果您仍想要一种方便的方式来运行所有任务,请更改您的playbook.yaml
以包含其他剧本:
- include: group1.yaml
- include: group2.yaml