3. Adhoc commands

Ansible Ad‑hoc Commands

An Ansible ad‑hoc command is a one‑line command used to perform quick tasks on one or more remote servers without writing a playbook.

It is mainly used for:


Why do we use Ad‑hoc Commands?

Ad‑hoc commands are used when:


Ad‑hoc Command Examples

1. Ping all servers

ansible -m ping all
ansible -m ping all

2. Ping a specific group

ansible -m ping node
ansible -m ping node

3. Check disk space

ansible -m command -a "df -h" all
ansible -m command -a "df -h" all

4. Use shell with pipeline

ansible -m shell -a "df -h | ls" all
ansible -m shell -a "df -h | ls" all

5. Install Apache using apt

ansible node -m apt -a "name=apache2 state=present update_cache=yes" -b
ansible node -m apt -a "name=apache2 state=present update_cache=yes" -b

6. Restart a service

ansible -m service -a "name=apache2 state=restarted" all
ansible -m service -a "name=apache2 state=restarted" all

7. Copy a file

ansible -m copy -a "src=config dest=/tmp" all
ansible -m copy -a "src=config dest=/tmp" all

8. Create a directory

ansible -m file -a "dest=/tmp/ak mode=644 state=directory" all
ansible -m file -a "dest=/tmp/ak mode=644 state=directory" all

9. Create a template

ansible -m template -a "src=template dest=/tmp/ak" all
ansible -m template -a "src=template dest=/tmp/ak" all

10. List all hosts

ansible --list-host all
ansible --list-host all

11. Create a user

ansible -m user -a "name=devops state=present groups=sudo append=yes" all
ansible -m user -a "name=devops state=present groups=sudo append=yes" all

12. Install multiple packages

ansible -m apt -a "name='vim,git,curl' state=present update_cache=yes" -b all
ansible -m apt -a "name='vim,git,curl' state=present update_cache=yes" -b all

13. Delete a file or directory

ansible -m file -a "path=/tmp/oldfile state=absent" all
ansible -m file -a "path=/tmp/oldfile state=absent" all

14. Fetch files from remote hosts

ansible -m fetch -a "src=/etc/hosts dest=~/hosts_backup/ flat=yes" all
ansible -m fetch -a "src=/etc/hosts dest=~/hosts_backup/ flat=yes" all

15. Synchronize directories

ansible -m synchronize -a "src=/local/dir dest=/remote/dir" all
ansible -m synchronize -a "src=/local/dir dest=/remote/dir" all