Shell 如何在没有主机文件的情况下运行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

就像:

$ 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