如何在没有主机文件的情况下运行Ansible
就像:
#ansible --"Some Options" IP -a 'uptime'
感谢
答案 0 :(得分:16)
ansible all -i "<hostname-or-ip>," -a 'uptime'
请注意IP地址末尾的,
,否则它将被视为主机广告资源文件名。
以下是一个参考示例:
ansible all -i "192.168.33.100," -a 'uptime'
192.168.33.100 | SUCCESS | rc=0 >>
12:05:10 up 10 min, 1 user, load average: 0.46, 0.23, 0.08
答案 1 :(得分:5)
可以使用三种方式向主机提供主机
在ansible.cfg中使用库存路径,默认情况下为/ etc / ansible / host
使用主机文件
ansible -i /tmp/hosts -a 'uptime'
使用hosts ip作为逗号分隔的主机列表。 请注意列表末尾的逗号
ansible -i "192.168.1.16,192.168.1.80:2222," -a 'uptime'
从ansible --help
,您可以获得-i
选项说明
-i INVENTORY, --inventory-file=INVENTORY
specify inventory host path
(default=/etc/ansible/hosts) or comma separated host
list.
答案 2 :(得分:0)
如果你想一次运行playbook或更多而不是整个列表,你可以尝试使用-l | --limit&#34; your.node.local&#34;
ansible-playbook -i inventory.hosts --limit your.node.local user.yml
答案 3 :(得分:0)
这两个答案都满足了您的大部分需求,但要SSH到远程主机,您需要告诉ansible
哪个用户使用SSH,特别是如果您正在运行的系统上的{ 1}}和远程目标。
例如,我有4个带有Ubuntu 20.04的RPi4系统。要使用Ansiible ad-hoc命令访问它们,请执行以下操作:
ansible
在这里,我向-$ ansible -i "k8s-02a,k8s-02b,k8s-02c,pi-vpn," -a uptime all -u ubuntu
pi-vpn | CHANGED | rc=0 >>
12:47:26 up 7:52, 1 user, load average: 0.14, 0.14, 0.10
k8s-02c | CHANGED | rc=0 >>
12:47:27 up 7:58, 1 user, load average: 0.06, 0.10, 0.09
k8s-02a | CHANGED | rc=0 >>
12:47:27 up 7:58, 1 user, load average: 0.43, 0.50, 0.47
k8s-02b | CHANGED | rc=0 >>
12:47:27 up 7:58, 1 user, load average: 0.08, 0.06, 0.04
提供了我的主机名列表,还指示i
使用用户名ansible
。
注意:我的ubuntu
版本:
ansible
$ ansible --version | grep ^ans
ansible 2.9.11