Ansible: ERROR: Invalid ini entry

Ansible: ERROR: Invalid ini entry

我刚刚开始使用 Ansible,并在编写了如下所述的小清单后

vagrant@acs:~/ex2$ cat prod_inventory
web1 192.168.33.20
db1 192.168.33.30
[webserver]
web1

[dbserver]
db1

[all:children]
webserver
dbserver

[all:vars]
ansible_ssh_user=vagrant
ansible_ssh_pass=vagrant

我在使用 ping 模块时出现以下错误

vagrant@acs:~/ex2$ ansible all -i prod_inventory -m ping
ERROR: Invalid ini entry: 192.168.33.20 - need more than 1 value to unpack
vagrant@acs:~/ex2$

没有得到我在这里缺少的东西。

请帮忙

您的库存文件的前两行不正确:

web1 192.168.33.20
db1 192.168.33.30

如果要为主机分配 IP 地址,则需要使用正确的语法:

[webserver]
web1 ansible_host=192.168.33.20

[dbserver]
db1 ansible_host=192.168.33.30

先阅读 the documentation,然后再随机尝试。明确规定:

Suppose you have just static IPs and want to set up some aliases that live in your host file, or you are connecting through tunnels. You can also describe hosts like this:

jumper ansible_port=5555 ansible_host=192.0.2.50

您错过了键=值清单格式。

web1 ansible_host=192.168.33.20
db1 ansible_host=192.168.33.30
[webserver]
web1

[dbserver]
db1

[all:children]
webserver
dbserver

[all:vars]
ansible_ssh_user=vagrant
ansible_ssh_pass=vagrant

备注

Ansible 2.0 已将 sshansible_ssh_useransible_ssh_hostansible_ssh_port 弃用为 ansible_useransible_hostansible_port。如果您使用的是 2.0 之前的 Ansible 版本,您应该继续使用旧样式变量 (ansible_ssh_*)。在旧版本的 Ansible 中,这些较短的变量会在没有警告的情况下被忽略。

http://docs.ansible.com/ansible/latest/intro_inventory.html