我想在其中安装一组带有基本应用程序配置手册的git repos,这样我所需要处理的任何虚拟机,无论其名称或角色,或者它的存在时间长短,都可以安装基本配置对这个repo运行一个ansible-pull命令,我得到一个准备好使用的实例。我遇到的问题是,如果我有一个如此设置的playbook local.yml:
- hosts: localhost
connection: local
gather_facts: yes
user: root
[...]
或者像这样:
- hosts: all
connection: local
gather_facts: yes
user: root
[...]
我一直收到以下错误:
# ansible-pull -d /tmp/myrepo -U 'http://mygithost/myrepo'
Starting ansible-pull at 2015-06-09 15:04:05
localhost | success >> {
"after": "2e4d1c637170f95dfaa8d16ef56491b64a9f931b",
"before": "d7520ea15baa8ec2c45742d0fd8e209c293c3487",
"changed": true
}
**ERROR: Specified --limit does not match any hosts**
我能够避免错误的唯一方法是创建一个带有显式组名和显式主机名的显式库存文件,然后使用' -i'旗帜如此:
# cat /tmp/myrepo/myinventory
[mygroup]
myhost1
myhost2
# cat /tmp/myrepo/local.yml
- hosts: mygroup
connection: local
gather_facts: yes
user: root
[...]
# ansible-pull -d /tmp/myrepo -i myinventory -U 'http://mygithost/myrepo'
但是我不想要那个,我想要任何主机,无论它的名称或角色是否已知能够对repo运行ansible-pull并运行playbook而无需明确配置名称主机进入库存。我该怎么做?
答案 0 :(得分:13)
以下是我在VM中ansible-pull
使用的工作流程:
在基本VM中,我将名为hosts
的文件放在/etc/ansible
:
# cat /etc/ansible/hosts
localhost ansible_connection=local
我的local.yaml
以
- hosts: localhost
gather_facts: yes
user: root
...
现在我可以使用ansible-pull而不指定主机文件。