我刚开始使用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$
没有得到我在这里失踪的东西。
请帮忙
答案 0 :(得分:1)
您的广告资源文件的前两行不正确:
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。明确规定:
假设您只有静态IP,并且想要设置一些存在于主机文件中的别名,或者您正在通过隧道连接。您还可以像这样描述主机:
jumper ansible_port=5555 ansible_host=192.0.2.50
答案 1 :(得分:1)
您错过了key = value库存格式。
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
答案 2 :(得分:-2)
注意强>
Ansible 2.0已将ssh
ansible_ssh_user
,ansible_ssh_host
和ansible_ssh_port
弃用为ansible_user
,ansible_host
和{{1} }}。如果您使用2.0之前的Ansible版本,则应继续使用较旧的样式变量(ansible_port
)。在较旧版本的Ansible中,这些较短的变量在没有警告的情况下被忽略。