Python 指定库存文件的Ansible不';行不通
我试图在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
-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
组,以清单中的所有服务器为目标