Suppose I have a role called "apache"
Now I want to execute that role on host 192.168.0.10 from the command line from Ansible host
ansible-playbook -i "192.168.0.10" --role "path to role"
Is there a way to do that?
There is no way to directly execute a role. Roles have no explicit setting for which host the role will apply to. Top-level playbooks are the bridge holding the hosts from your inventory file to roles that should be applied to those hosts.
With ansible 2.7 you can do this:
$ cd /path/to/ansible/ $ ansible localhost -m include_role -a name=<role_name> localhost | SUCCESS => { "changed": false, "include_variables": { "name": "<role_name>" } } localhost | SUCCESS => { "msg": "<role_name>" }
This will run role from /path/to/ansible/roles or configured role path.
Read more here: https://github.com/ansible/ansible/pull/43131
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With