Saturday, August 7, 2021

Ansible 5: Commands and their examples

Hello Automation specialists, This post is for trying all the Ansible Command-line tools,  it's like a cheat sheet for ansible CLI with executed examples to better understand their usage.


Ansible command-line utilities can be executed only on the box where the Ansible engine is installed and running.

ansible 

ansible command is used for define and run a single task 'playbook' against a set of hosts. ansible command is an extra-simple tool/framework/API for doing 'remote operations'. 

 Case 1:
ansible -i inventory.yml all  --list-hosts # all 
   ansible -i inventory.yml dbserver  --list-hosts  #Specific group
   ansible -i inventory.yml common  --list-hosts # same as all if inventory is yml
   
The ansible command list-host optoin
Listing host using ansible command


Case 2:
   # inventory set in the ansible.cfg
    ansible all --list-hosts
    # a group specific
    ansible web --list-hosts
    # checking for a specific host in a group
    ansible web --list-hosts -l 192.168.33.220
  

Listing inventory host using ansible command
The ansible command list host option with limiting

 ansible-config 

Ansible uses configuration definations in the ansible.cfg file located in the /etc/ansible/ansible.cfg
ansible-config --help show help
The state of your Ansible configuration settings
ansible-config view



The list of variables we can retrieve using the following command:
ansible-config list 
Ansible configuration list

You can see another list of configurations but you can also store it in a file
ansible-config dump 
ansible configuration dump


You can get the list of overloaded variable values using :
ansible-config dump --only-change 
Custom configurations
ansible-config command on awx docker container

 ansible-console 

This command allows for running ad-hoc commands or tasks against a chosen inventory from a shell with built-in tab auto-completion. It will supports several Linux like commands and you can modify its configuration at the runtime. You can get full help about some of the modules which is very simple in this shell.

ansible-console help for 'copy' command


ansible-console root@all ansibleprompt$ copy /tmp/hello.txt /home/ansibleuser

Task like copying files from the remote managed clients is simple.

You may be confused some commands same as in Linux, but the meaning is different in Ansible. Example 'cd' which change the hosts instead of changing the directory.

ansible-console help of cd command

You can explore any module from ansible-console and then you can add that into your playbook as task.

ansible-doc 

To get help on the plug-ins and modules you can use this ansible-doc command.

 ansible-doc modulename
Example1:
ansible-doc stat 
 
ansible-doc command applied against stat module

Example 2: To get the list of all modules
    ansible-doc -l 
 
ansible-doc for list of modules

ansible-galaxy 

The ansible-galaxy command will be used to create roles directory structure offline, you can also download community provided roles from the Galaxy website in online mode


ansible-galaxy search elk Searching for a module is similar to the search for image in docker cli. For example search for 'elk' role on Galaxy
ansible-galaxy search elk

searching for elk roles on galaxy

Let's try to install a module from Galaxy now:
ansible-galaxy search elk
elk installation using ansible-galaxy


 ansible-inventory 


If there are any host specific variable used then you can use --vars option against a host.
ansible-inventory --host 192.168.33.220 --vars
Which doesnot returns empty because the default inventory having only hosts and groups. # When you define inventory file as:
[vagrant@mstr prod]$ cat prod_inv_host_group
[prod]
localhost
[db]
192.168.33.200
[web]
192.168.33.210 ansible_user=vagrant
192.168.33.220 ansible_user=devadmin
then you can see the host vars as follows:
ansible-inventory -i prod_inv_host_group --host 192.168.33.220 --vars
# to get the graph which is similar to linux tree command to show the connection between groups and their host association
ansible-inventory --graph
ansible-inventory vars and  graph
ansible-inventory vars and  graph


ansible-playbook 

The actual Ansible automation will be happen with this command. You need to write task in a play then we can execute it by providing the playbook yaml file as argument.

Sample playbook 

  ---
 - name: Hello from DevOpsHunter
   hosts: localhost
    
   tasks:
   - name: Greeting message
     debug:
       msg: "Welcome to DevOps Jungle... Start Hunting..."
       
Execution command

ansible-playbook /root/welcome.yaml
  




 ansible-pull 


No comments:

Categories

Kubernetes (24) Docker (20) git (13) Jenkins (12) AWS (7) Jenkins CI (5) Vagrant (5) K8s (4) VirtualBox (4) CentOS7 (3) docker registry (3) docker-ee (3) ucp (3) Jenkins Automation (2) Jenkins Master Slave (2) Jenkins Project (2) containers (2) docker EE (2) docker private registry (2) dockers (2) dtr (2) kubeadm (2) kubectl (2) kubelet (2) openssl (2) Alert Manager CLI (1) AlertManager (1) Apache Maven (1) Best DevOps interview questions (1) CentOS (1) Container as a Service (1) DevOps Interview Questions (1) Docker 19 CE on Ubuntu 19.04 (1) Docker Tutorial (1) Docker UCP (1) Docker installation on Ubunutu (1) Docker interview questions (1) Docker on PowerShell (1) Docker on Windows (1) Docker version (1) Docker-ee installation on CentOS (1) DockerHub (1) Features of DTR (1) Fedora (1) Freestyle Project (1) Git Install on CentOS (1) Git Install on Oracle Linux (1) Git Install on RHEL (1) Git Source based installation (1) Git line ending setup (1) Git migration (1) Grafana on Windows (1) Install DTR (1) Install Docker on Windows Server (1) Install Maven on CentOS (1) Issues (1) Jenkins CI server on AWS instance (1) Jenkins First Job (1) Jenkins Installation on CentOS7 (1) Jenkins Master (1) Jenkins automatic build (1) Jenkins installation on Ubuntu 18.04 (1) Jenkins integration with GitHub server (1) Jenkins on AWS Ubuntu (1) Kubernetes Cluster provisioning (1) Kubernetes interview questions (1) Kuberntes Installation (1) Maven (1) Maven installation on Unix (1) Operations interview Questions (1) Oracle Linux (1) Personal access tokens on GitHub (1) Problem in Docker (1) Prometheus (1) Prometheus CLI (1) RHEL (1) SCM (1) SCM Poll (1) SRE interview questions (1) Troubleshooting (1) Uninstall Git (1) Uninstall Git on CentOS7 (1) Universal Control Plane (1) Vagrantfile (1) amtool (1) aws IAM Role (1) aws policy (1) caas (1) chef installation (1) create deployment (1) create organization on UCP (1) create team on UCP (1) docker CE (1) docker UCP console (1) docker command line (1) docker commands (1) docker community edition (1) docker container (1) docker editions (1) docker enterprise edition (1) docker enterprise edition deep dive (1) docker for windows (1) docker hub (1) docker installation (1) docker node (1) docker releases (1) docker secure registry (1) docker service (1) docker swarm init (1) docker swarm join (1) docker trusted registry (1) elasticBeanStalk (1) global configurations (1) helm installation issue (1) mvn (1) namespaces (1) promtool (1) service creation (1) slack (1)