# Ad-Hoc Commands ### Ad Hoc Commands - Basic Operations ````go=1 ansible --list-hosts all ansible --list-hosts <groupname> ansible nodes -m shell -a 'ls /tmp' ansible all -m shell -a 'hostname' ansible all -m shell -a 'uptime' ansible all -m shell -a 'ip r' ansible nodes -m shell -a 'fdisk -l' --become ansible webservers -m user -a 'name=sk12k password=123456' --become ansible all -m shell -a uptime ansible all -m shell -a "free -m" ```` ### Install/ Uninstall packages (state = present / absent / latest)] ````go=1 ansible nodes -m shell -a 'sudo apt update -y' -b ansible nodes -m package -a 'name=git state=present' -b Read the following documentation: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/package_module.html ```` ### File Operations ````go=1 Create a file: ansible nodes -m file -a 'path=/tmp/adhoc1.txt mode=755 state=touch' Delete a file: ansible nodes -m file -a 'path=/tmp/adhoc1.txt state=absent' **validation** ansible nodes -m shell -a 'ls /tmp' ```` ### Copy a file from Controller to all the nodes ````go=1 Create a file which will be the source: echo "put your content here" >> /tmp/adhoc1 Run following Ansible command to copy to remote nodes ansible nodes -m copy -a 'src=/tmp/adhoc1 dest=/tmp/adhoc1' ```` ### Create a directory on remote nodes using Ansible ````go=1 ansible nodes -m file -a 'path=/tmp/testdirectory_1 mode=755 state=directory' ```` ### Working with Ansible Facts (System Properties) #### Setup Module ````go=1 ansible worker1 -m setup ansible worker1 -m setup | less ansible worker1 -m setup -a "filter=*ipv4*" ansible worker1 -m setup -a "filter=*os_family*" ansible all -m setup -a "filter=*os_family*" ````