Following the syntax:
ansible hostgroup -m module [-a ‘module arguments’] [-i inventory]
Note that it will allow you executed actions in the host via the module chose. For example:
$ansible all -m ping
The above command will call the module ping for all hosts in the inventory. Which means that it will return a JSON output with the result of a ping into each one as follows.
myserver.domain.com | SUCCESS => { "changed": false, "ping": "pong" }
Following another example.
$ansible webservers -m command -a ‘cat /tmp/myfile’ -u myuser
The above command will execute the command ‘cat /tmp/myfile’ with the user ‘myuser’ for each host defined in the group [webservers] in the inventory of this configuration.
Modules
The modules contain implementations of actions that can be helpful and useful. For example, the module command will allow you to execute commands as for example cat, cp, and mv, and ls -la, etc …
The module shell will open a $bin/bash shell. Following the link for its documentation.
- command: https://docs.ansible.com/ansible/latest/modules/command_module.html
- shell: https://docs.ansible.com/ansible/latest/modules/shell_module.html
Note that in the same way that these modules can be used in the command line they can be used in the ansible scripts like the following example.
- name: return the content of the file command: cat /tmp/myfile register: myfile
Check here the list of all modules available and see Adding modules and plugins locally to know how to use your own modules locally. Also, it is possible developer modules to be used with Ansible.