Ansible:如何在流浪汉中运行特定主机?

Ansible:如何在流浪汉中运行特定主机?,ansible,ansible-inventory,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运行这两个组,这是我的漫游框,但是,它们都将被执行。对于测试,我更愿意选择,哪种设置,我想测试

我有一个复杂的Ansible设置,在我的组文件中有几个主机。像这样的

# hosts/groups

[local]
127.0.0.1

[server1]
server1.domain.com

[server2]
server2.domain.com

[group1]
local
server1

[group2]
local
server2
通过这种方式,我可以对localhost:2222运行这两个组,这是我的漫游框,但是,它们都将被执行。对于测试,我更愿意选择,哪种设置,我想测试。我尝试过--额外的vars参数和条件,这非常难看。有没有办法在主机配置中使用额外的_vars参数。使用像

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

或者我完全错了。

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

我能想到的最好的选择可能是重新组织你的剧本。如果创建
group1.yaml
group2.yaml
,每个都包含分别设置
group1
group2
所需的语句,则可以运行以下操作

[$]> ansible-playbook -l 127.0.0.1:2222 group1.yaml
仅针对您的开发实例运行
group1
配置

如果您仍然希望以方便的方式运行所有任务,请修改您的
playbook.yaml
以包括其他playbook:

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

我不太清楚你想做什么。您想在本地开发机器上运行与生产主机相同的操作手册吗?很抱歉,不清楚,我有一个生产设置,其中有很多(大部分是不相关的)机器。在创建另一个时,我只想对我的vagrant实例运行这台特定的机器,看看情况如何;您的意思是只想针对您的vagrant实例运行特定的角色或playbook吗?准确地说,是指分配给主机定义的所有playbook条目/角色。基本上,在vagrant中有一个主机副本。鉴于上面的示例,我希望在group1上执行操作,而不是在group2上执行一次操作,这将发生在上面的示例中。但也许我完全错了。哦,我明白了-您的本地计算机模拟多种类型的服务器(
server1
server2
),您只想测试其中一种类型的服务器。