Ansible for Server Process Automation

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.

Posted On 31 August 2015 By MicroPyramid


Need any Help in your Project?Let's Talk

Latest Comments
Related Articles
Letsencrypt wildcard - Setup wildcard subdomain using letsencrypt and certbot

To get wildcard supported certificates, we need to pass the challenge which requires adding TXT records in your dns records.
To get certificates for single ...

Continue Reading...
Setting Up Sentry - Web Application Event Tracking platform

When you want to track your exception and log mesages in a UI rather than storing it in a file(which we usually do), we can ...

Continue Reading...
Web Hooks for Gitlab using PHP and Shell Scripts

Web-hooks play vital role if you are in Continuous Integration(CI). Higher Level organizations follow GitLab for CI purposes if they operate on open source solutions ...

Continue Reading...
open source packages

Subscribe To our news letter

Subscribe and Stay Updated about our Webinars, news and articles on Django, Python, Machine Learning, Amazon Web Services, DevOps, Salesforce, ReactJS, AngularJS, React Native.
* We don't provide your email contact details to any third parties