Ansible for Server Process Automation

Reading Time : ~ .

Ansible is one of the few automation tools which uses an agentless architecture, where you don't need to install daemons in client nodes for interacting with a controlling system. It combines multi-node software deployment, ad-hoc task execution, and configuration management.

In this Post, we will set up and configure ansible to run simple configurations.

Installing Ansible:

  Installing Ansible is very simple with these three commands:

sudo apt-add-repository ppa:ansible/ansible

sudo apt-get update

sudo apt-get install ansible

Customizing Ansible to run in the Single Endpoint:

Ansible although mostly intended and used for Multi-Node Configuration management and automation, it can run on your own system. 

Edit the ansible hosts at /etc/ansible/hosts 

Comment every line and add this at bottom of configuration or simply back up the ansible hosts and create new file 

localhost ansible_connection=local

the localhost variable can be callable in the ansible Configurations

PlayBooks:

Playbooks are ansible configurations. these configurations are written in YAML Format. PlayBook simply put, is not just a configurations but also to orchestrate steps in a manually ordered process.

Basic PlayBook to check ansible version:

- hosts: local
  remote_user: root
  tasks:
    - name: Check Ansible version
      command: ansible --version
      register: ansibleVersion

    - name: Print version
      debug:
        msg: "Ansible Version: {{ ansibleVersion.stdout }}"

In Above configuration host refers to the variable we mentioned in the ansible hosts file (/etc/ansible/hosts). Here tasks refer to the order in which it has to execute the playbook. so first we will check ansible version and store it in a variable called ansible-version and print it back to the shell. 

Ansible tasks can be of any type

name will be the name of the task and then follows the task it has to do

command here refers to the shell command it has to execute. command keyword can be interchanged with shell keyword if you are sure its exit code is non-zero.

register is a keyword used to store the output of the above task. so we are storing ansible --version output in a variable ansible-version

debug is to print the message onto the shell

 

Running PlayBooks:

ansible-playbook .yml

Every Ansible task should have a name although not mandatory ( as it takes from the task we give directly), it is useful for debugging in case of failure.

 

*** note that ansible uses /bin/sh but not /bin/bash while executing shell commands.

 

    By Posted On
SENIOR DEVELOPER at MICROPYRAMID

Need any Help in your Project?Let's Talk

Latest Comments
Related Articles
Clustering of Docker Containers using Docker Swarm Jagadeesh V

There are many available ways of Docker clustering. Kubernetes, Docker cloud, Docker Swarm etc., In this Tutorial we will learn setting up a cluster using ...

Continue Reading...
Django hosting on Nginx with uwsgi for high performance Ashwin Kumar

Quick guide to host django application using uwsgi and nginx which offers better resource utilization and performance.

Continue Reading...
Automate Django Deployments with fabfile Shirisha Gaddi

Fabric is a Python library and command-line tool with the ability to execute commands on a remote server. It is designed to use SSH to ...

Continue Reading...

Subscribe To our news letter

Subscribe to our news letter to receive latest blog posts into your inbox. Please fill your email address in the below form.
*We don't provide your email contact details to any third parties