How to run Ansible without hosts file

you can do like this:

ansible all -i "<hostname-or-ip>," -a 'uptime'

Note the , at the end of the IP address, or it will be considered a hosts inventory filename.

Here is an example for reference:

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

Hosts can be given to ansible using three ways

  • Using inventory path in ansible.cfg which is /etc/ansible/host by default

  • Using hosts file

     ansible -i /tmp/hosts -a 'uptime' all
    
  • Using hosts ip as comma separated host list. Take care of the comma in the end of the list

     ansible -i "192.168.1.16,192.168.1.80:2222," -a 'uptime' all
    

From ansible --help you can get -i option description

-i INVENTORY, --inventory-file=INVENTORY
                    specify inventory host path
                    (default=/etc/ansible/hosts) or comma separated host
                    list.

Tags:

Shell

Ansible