HostSEO Blog

Stories and News from IT Industry, Reviews & Tips | Technology Blog


Install Ansible and Create Ansible Playbook for CRON

Ansible is a tool that used to manage various nodes from an ansible installed Controlling Machine using SSH Protocol. It makes every system administrative tasks more easy.

Ansible Playbook is a organised unit of scripts which is working in the Controller machine (Ansible installed system). Playbook are written in YAML format.

Install Ansible on Centos 7:-

Controller Machine IP:- 10.0.0.209

Node IP :- 10.0.0.206
10.0.0.207

* more ip can be used.

Step 1 :-
Install Ansible using yum in Controller Machine. Check the version of the installed Ansible.

# yum install ansible
# ansible --version

Step 2 :-
Setup Controlling Machine to connect node using ssh protocol.
Create ssh key to access node systems and copy the key to the node.

# ssh-keygen
# ssh-copy-id root@10.0.0.206
# ssh-copy-id root@10.0.0.207

Step 3:-
Add ips of node systems into the Inventory of Ansible by editing /etc/ansible/hosts .

# vim /etc/ansible/hosts
[ansi-test]
10.0.0.206
10.0.0.207

Note: Here both ip can call using name ansi-test

Step 4:-
Test Ansible in the Controller Machine by using below commands.

1. First of all test the Controlling Machine have ping with node system using ansible commands.

# ansible -m ping all

10.0.0.206 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
10.0.0.207 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

Now Lets start to work with Ansible Playbook.

Create Ansible Playbook for CRON :-

Our requirement is to take backup of /test folder to /backup folder at every day 12:00 in all the nodes that are configured to the controller machine with Ansible.

First make /test folder and /backup folder.

# mkdir /backup
# mkdir /test

Now we need to write a backup shell script in the folder /backup_script with the name backup.sh . This script are need to transfer all nodes.

# vim /backup_script/backup.sh

#!/bin/bash
tar vcf /backup/backup_test.`date +\%Y-\%m-\%d_\%H:\%M:\%S`.tar /test

Setup Ansible playbook and create yml script for cronjob :-

Make a directory Playbooks in side /etc/ansible.

# mkdir /etc/ansible/playbooks

Create cron.yml using vim tool.

# vim /etc/ansible/playbooks/cron.yml
  tasks:
  - name: Install a yum package in Ansible
    yum:
      name: crontabs
      state: present
  - name: copy the script into node systems
    copy: src=/backup_script/backup.sh dest=/root/
  - name: create a cron in node systems
    cron:
        name: "Backup Cron"
        user: "root"
        minute: 00
        hour: 12
        job: "/usr/bin/sh /root/backup.sh 2>&1"

Now we have created Ansible Playbook with name cron.yml. Execute the following command to run the script using Ansible.

# ansible-playbook /etc/ansible/playbooks/cron.yml

Subscribe Now

10,000 successful online businessmen like to have our content directly delivered to their inbox. Subscribe to our newsletter!

Archive Calendar

SatSunMonTueWedThuFri
 12345
6789101112
13141516171819
20212223242526
27282930 

Born in 2004 ... Trusted By Clients n' Experts

SEO Stars

They never made me feel silly for asking questions. Help me understand how to attract more people and improve my search engine ranking.

Read More

Emily Schneller Manager at Sabre Inc
SEO Stars

Took advantage of Hostseo's superb tech support and I must say, it is a very perfect one. It is very fast, servers reliability is incredible.

Read More

Leena Mäkinen Creative producer
SEO Stars

We're operating a worldwide network of servers with high quality standards requirements, we’ve choose hostseo to be our perfect partner.

Read More

Ziff Davis CEO at Mashable
SEO Stars

It’s very comfortable to know I can rely about all technical issues on Hostseo and mostly that my website and emails are safe and secured here.

Read More

Isaac H. Entrepreneur
SEO Stars

With hostseo as a hosting partner we are more flexible and save money due to the better packages with great pricing, free SEO n' free SSL too!

Read More

Madeline E. Internet Professional