Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ansible: no hosts matched

I'm trying to execute my first remote shell script on Ansible. I've first generated and copied the SSH keys. Here is my yml file:

--- - name: Ansible remote shell   hosts: 192.168.10.1   user: myuser1   become: true   become_user: jboss   tasks:     - name: Hello server       shell: /home/jboss/script.sh 

When launching the playbook however, the outcome is "no hosts matched":

ansible-playbook setup.yml   PLAY [Ansible remote shell ********************************************  skipping: no hosts matched  PLAY RECAP ********************************************************************  

I've tried also using the host name (instead of the IP address), however nothing changed. Any help ?

like image 667
Carla Avatar asked Jul 05 '16 12:07

Carla


2 Answers

You need to define a host inventory.

The default path for this is /etc/ansible/hosts (as also stated by helloV).

For a minimal example you can also specify an inventory in the command line:

ansible-playbook setup.yml -i 192.168.10.1, 

The trailing comma makes it a list, such that ansible parses it directy. Otherwise you can run

ansible-playbook setup.yml -i myinventory 

where myinventory is a file listing your hosts.

like image 144
Robin Roth Avatar answered Sep 21 '22 04:09

Robin Roth


Ansible doesn't know anything about your host. If it is in dynamic inventory, you can pass the inventory script using -i option or edit /etc/ansible/hosts and add an entry for your host like:

[myhost] 192.168.10.1 

and specify the host in the playbook as:

hosts: myhost 
like image 35
helloV Avatar answered Sep 24 '22 04:09

helloV