Shell 如何在没有主机文件的情况下运行Ansible
如何在没有主机文件的情况下运行Ansible 就像:Shell 如何在没有主机文件的情况下运行Ansible,shell,ansible,Shell,Ansible,如何在没有主机文件的情况下运行Ansible 就像: $ ansible --"Some Options" IP -a 'uptime' 您可以这样做: ansible all -i "<hostname-or-ip>," -a 'uptime' 主机可以通过三种方式分配给ansible 在ansible.cfg中使用库存路径,默认情况下为/etc/ansible/host 使用主机文件 ansible -i /tmp/hosts -a 'uptime' all 使用
$ ansible --"Some Options" IP -a 'uptime'
您可以这样做:
ansible all -i "<hostname-or-ip>," -a 'uptime'
主机可以通过三种方式分配给ansible
- 在ansible.cfg中使用库存路径,默认情况下为/etc/ansible/host
- 使用主机文件
ansible -i /tmp/hosts -a 'uptime' all
- 使用主机ip作为逗号分隔的主机列表注意列表末尾的逗号
ansible -i "192.168.1.16,192.168.1.80:2222," -a 'uptime' all
ansible--help
可以获得-i
选项说明
-i INVENTORY, --inventory-file=INVENTORY
specify inventory host path
(default=/etc/ansible/hosts) or comma separated host
list.
如果您想一次或多次运行playbook而不是整个列表,可以尝试使用-l |--limit“your.node.local”
这里的两个答案都包含了您所需要的大部分内容,但是为了通过SSH连接到远程主机,您需要告诉
ansible
SSH作为什么用户,特别是在您运行的系统和远程目标上不同的情况下
例如,我有4个带有Ubuntu 20.04的RPi4系统。要使用Ansiible即席命令访问它们,请执行以下操作:
$ 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
错误!缺少目标主机。我的ansible版本是ansible 2.1.0.0这花了我10分钟…非常感谢。
$ 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
$ ansible --version | grep ^ans
ansible 2.9.11