Python 指定库存文件的Ansible不';行不通

Python 指定库存文件的Ansible不';行不通,python,ansible,Python,Ansible,我试图在Ansible中指定库存文件 帮助命令输出: -i INVENTORY, --inventory-file=INVENTORY specify inventory host file (default=/usr/local/etc/ansible/hosts) 我试着这样做: ansible -i /Users/liu/personal/test_ansible/hosts [web

我试图在Ansible中指定库存文件

帮助命令输出:

  -i INVENTORY, --inventory-file=INVENTORY
                        specify inventory host file
                        (default=/usr/local/etc/ansible/hosts)
我试着这样做:

 ansible -i /Users/liu/personal/test_ansible/hosts
[web]
web-1.example.org
web-2.example.org

[app]
app-1.example.org
app-2.example.org
app-3.example.org

[database:children]
database-master
database-slave

[database-master]
database-master.example.org

[database-child]
database-slave1.example.org
database-slave2.example.org
但它不起作用,而是再次输出帮助内容:

➜  test_ansible  ansible -i /Users/liu/personal/test_ansible/hosts
Usage: ansible <host-pattern> [options]

Options:
  -a MODULE_ARGS, --args=MODULE_ARGS
                        module arguments
  --ask-become-pass     ask for privilege escalation password
  -k, --ask-pass        ask for SSH password
  --ask-su-pass         ask for su password (deprecated, use become)
  -K, --ask-sudo-pass   ask for sudo password (deprecated, use become)
  --ask-vault-pass      ask for vault password
  -B SECONDS, --background=SECONDS
                        run asynchronously, failing after X seconds
                        (default=N/A)
  .......
➜  测试负责人-i/Users/liu/personal/test负责人/主机
用法:ansible[选项]
选项:
-模块参数,--ARGS=模块参数
模块参数
--请求变为通过请求权限升级密码
-k、 --请求通过请求SSH密码
--ask su pass ask su密码(已弃用,使用BEN)
-K、 --询问sudo密码询问sudo密码(已弃用,使用“成为”)
--询问保险库通行证询问保险库密码
-B秒,--背景=秒
异步运行,X秒后失败
(默认值=不适用)
.......
我在这里遗漏了什么?

我找到了解决方案:

export ANSIBLE_INVENTORY=/Users/liu/personal/test_ansible/hosts

那就好了

当您使用
ansible
命令时,它将运行特别的ansible模块,而不是更典型的ansible playbook(由
ansible playbook
可执行文件运行)

ansible
可执行文件需要一个“主机模式”,它将匹配清单中定义的一组远程节点

因此,如果我们提供了一个清单文件(本例中名为
inventory.ini
),该文件如下所示:

 ansible -i /Users/liu/personal/test_ansible/hosts
[web]
web-1.example.org
web-2.example.org

[app]
app-1.example.org
app-2.example.org
app-3.example.org

[database:children]
database-master
database-slave

[database-master]
database-master.example.org

[database-child]
database-slave1.example.org
database-slave2.example.org
我们可以通过使用
ansible web-i/path/to/inventory.ini-m ping
来针对web-1.example.org和web-2.example.org使用ping模块,只针对web节点

或者,我们可以通过使用
ansible-database-i/path/to/inventory.ini-m ping
以所有数据库节点为目标,包括主节点和2个从节点

最后,我们还可以通过使用
ansible all-i/path/to/inventory.ini-m ping来使用覆盖清单文件中所有组的“magic”
all
组,以清单中的所有服务器为目标