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

Ansible: How to run particular host in Vagrant?

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

或者我完全错了。

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

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

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

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

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

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