Scheduling jobs with Ansible by using the Cron module is one of the key skills for success with using Ansible, and now it’s actually an objective of the *Red Hat Certified Ansible Specialist* exam.
In this hands-on lab we will use a playbook with the Cron module, and make schedule a task at a specified time. Then we will check when it was created properly, with `crontab` command.
Note: Ansible has been setup and configured for use on the Control server and two nodes. This will save time when doing the hands-on lab.
Successfully complete this lab by achieving the following learning objectives:
- Sign onto the Ansible Control Node Server as cloud_user and Change to the ansible User. Test to Ensure Ansible Has Been Set up for You
Sign into the server called Ansible Control Node using the cloud_user and change to the
ansibleuser via the
su - ansiblecommand.
Test that Ansible is working via an ad-hoc command.
A possible command to use is the following:
ansible all -m ping
Note: It may take several minutes after the start of the lab, for the test to work as expected.
- Create a Playbook Called cron-tasks.yml That Performs a Task (‘df -h >> /tmp/diskspace’) on the Nodes at 5:00AM and 5:00PM.
Using the cron module, create a playbook that adds a cron job to the nodes.
The job should run at 5AM and 5PM. The task to run is
df -h >> /tmp/diskspace.
- Run the Playbook and Test Whether the Cron Job Exists on the Nodes
Run the playbook and then log into the nodes and check that the cron job exists.
It should look similar to this:
0 5,17 * * * df -h >> /tmp/diskspace
- Create a Playbook to Remove the Cron Job. It Should Be Called delete-crontask.yml and Should Only Delete That Cron Job
Create a new playbook. This new playbook should delete the cron job you just created,
but leave any other cron jobs there.
- Run the Playbook, Then Confirm That the Job Added Earlier Has Been Deleted
Run the playbook and confirm that the original cron job has been deleted.