如何限制主机配置?

时间:2015-05-11 11:46:41

标签: amazon-ec2 vagrant ansible

我使用Vagrant创建EC2虚拟机并且可以配置它们。我使用this guide以及库存的ec2.py脚本。

我目前正在配置一个带有ansible的主机,我已经给了一个名为Purpose的标签(让我们说这个值是"机器用途")所以我可以在我的ansible文件中执行此操作(ec2.py脚本提供此功能):

- hosts: tag_Purpose_Machine_Purpose

我的问题是,如果我想添加另一台服务器,并且我想配置它,我无法使用vagrant provision server2来执行此操作,因为这将运行ansible脚本,该脚本将与第一个匹配也是主持人,并提供一个。

我想避免的原因是,即使ansible指令大部分是幂等的,并非所有指令都是,所以我将不必要地在node1上移动一些文件等,更重要的是,还要重启已经运行的服务那里。

有没有办法让ansible只配置我在命令行中指定的服务器?

2 个答案:

答案 0 :(得分:1)

您可以使用参数--limit限制Ansible游戏。它没有很好的文档,但您可以提供组名和主机名。

ansible-playbook ... --limit hostA

也可以用逗号分隔多个主机名:

ansible-playbook ... --limit hostA,hostB,hostC

答案 1 :(得分:0)

您可以在Vagrantfile中设置 v.vm.provision“ ansible”做| ansible |   ansible.limit ='all'#更改此项 您可以从命令行加载它 v.vm.provision“ ansible”做| ansible |   ansible.limit =(ENV ['ANSIBLE_LIMIT'] ||'all') 用 ANSIBLE_LIMIT ='x'无业游民规定