Question:
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:
1 2 3 4 5 6 7 8 9 10 |
--- - 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”:
1 2 3 4 5 6 7 8 |
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 ?
Answer:
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:
1 2 |
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
1 2 |
ansible-playbook setup.yml -i myinventory |
where myinventory
is a file listing your hosts.