我刚刚在Ubuntu 19.04上安装了Ansible。
环境变量ANSIBLE_CONFIG
为空。
我有一个本地ansible.cfg
文件,它指向本地清单文件(称为主机)。
本地清单文件(主机)标识两个路由器(R1和R2)。
这些设备R1和R2在我的/ etc / hosts文件中,并且我可以SSH到它们。
ansible --version
显示我的配置文件为/home/paddy/ansible.cfg
。
ansible --list-hosts all
说没有主机文件。
当我删除本地ansible.cfg
文件并将本地清单文件(主机)放入/etc/ansible
并运行时,我得到:
$ansible --list-hosts all
hosts (2):
R1
R2
这是预期的。
不幸的是,当我使用本地ansible.cfg
文件时,它看不到库存文件(/home/paddy/hosts
)
$echo $ANSIBLE_CONFIG
<nothing>
ansible.cfg
文件(在/home/paddy
中)如下: [defaults]
hostfile = /home/paddy/hosts
host_key_checking = False
timeout = 5
/home/paddy
中称为hosts
): [routers]
R1
R2
/home/paddy
中的文件:$ls -l
total 52
-rw-r--r-- 1 paddy paddy 79 Aug 19 16:54 ansible.cfg
-rw-r--r-- 1 paddy paddy 17 Aug 19 16:55 hosts
<redacted directories>
ansible --version
$ansible --version
ansible 2.8.4
config file = /home/paddy/ansible.cfg
configured module search path = [u'/home/paddy/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.16 (default, Apr 6 2019, 01:42:57) [GCC 8.3.0]
ansible --list-hosts all.
$ansible --list-hosts all
[WARNING]: provided hosts list is empty, only localhost is available.
Note that the implicit localhost does not match 'all'.
hosts (0):
我希望看到:
$ansible --list-hosts all
hosts (2):
R1
R2
我得到的是:
$ansible --list-hosts all
[WARNING]: provided hosts list is empty, only localhost is available.
Note that the implicit localhost does not match 'all'.
hosts (0):
答案 0 :(得分:1)
Ini键是inventory
错
[defaults]
hostfile = /home/paddy/hosts
正确
[defaults]
inventory = /home/paddy/hosts
注意
可以在 ansible.cfg 中使用环境变量。例如
[defaults]
inventory = $PWD/hosts
roles_path = $PWD/roles
library = $PWD/modules:/usr/share/ansible/plugins/modules
...