为什么Ansible会忽略我的库存文件?

时间:2019-08-19 05:43:58

标签: ansible

我刚刚在Ubuntu 19.04上安装了Ansible。 环境变量ANSIBLE_CONFIG为空。 我有一个本地ansible.cfg文件,它指向本地清单文件(称为主机)。 本地清单文件(主机)标识两个路由器(R1和R2)。 这些设备R1和R2在我的/ etc / hosts文件中,并且我可以SSH到它们。 ansible --version显示我的配置文件为/home/paddy/ansible.cfgansible --list-hosts all说没有主机文件。

当我删除本地ansible.cfg文件并将本地清单文件(主机)放入/etc/ansible并运行时,我得到:

$ansible --list-hosts all
    hosts (2):
      R1
      R2 

这是预期的。 不幸的是,当我使用本地ansible.cfg文件时,它看不到库存文件(/home/paddy/hosts

  1. 未设置环境变量:
$echo $ANSIBLE_CONFIG

    <nothing>
  1. 本地ansible.cfg文件(在/home/paddy中)如下:
    [defaults]
    hostfile = /home/paddy/hosts
    host_key_checking = False
    timeout = 5
  1. 本地库存文件(在/home/paddy中称为hosts):
    [routers]
    R1
    R2
  1. /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>
  1. ansible --version
  2. 的输出
$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]
  1. ansible --list-hosts all.
  2. 的输出
$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):

1 个答案:

答案 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
...