HOSTSEO BLOG

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…

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Human security check Solve the quick calculation to publish your comment.