- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud

Ansible Playbooks - Error Handling
Advanced error handling is one of the many strengths of Ansible. Software systems are seldom perfect, and that is an issue in this exercise. Students must configure an Ansible playbook to handle an unreliable connection. This skill is not only essential for practical Ansible use, but also an objective on the Red Hat Certified Ansible Specialist Exam. *This course is not approved or sponsored by Red Hat.*

Lab Info
Table of Contents
-
Challenge
Create a playbook: `/home/ansible/report.yml`
echo "---" >> /home/ansible/report.yml
-
Challenge
Configure the Playbook to Download *http://apps.l33t.com/transaction_list* to `/home/ansible/transaction_list` on `localhost` and Outputs the Message "File downloaded." to `stdout`
Using a text editor, such as
vim
, edit/home/ansible/report.yml
to contain the following text block below the line containing "---":- hosts: localhost tasks: - name: download transaction_list get_url: url: http://apps.l33t.com/transaction_list dest: /home/ansible/transaction_list - debug: msg="File downloaded"
-
Challenge
Configure the Playbook to Handle Connection Failure by Outputting "l33t.com appears to be down. Try again later." to `stdout`
Using a text editor, such as
vim
, edit the tasks section in/home/ansible/report.yml
to contain the new lines as shown below. Note that theget_url
line was changed to include a leading hyphen:--- - hosts: localhost tasks: - name: download transaction_list block: - get_url: url: http://apps.l33t.com/transaction_list dest: /home/ansible/transaction_list - debug: msg="File downloaded" rescue: - debug: msg="l33t.com appears to be down. Try again later."
-
Challenge
Configure the Playbook to Output "Attempt Completed" to `stdout`, Whether It Was Successful or Not
Using a text editor, such as
vim
, edit the tasks section in/home/ansible/report.yml
to contain the new lines as shown below.--- - hosts: localhost tasks: - name: download transaction_list block: - get_url: url: http://apps.l33t.com/transaction_list dest: /home/ansible/transaction_list - debug: msg="File downloaded" rescue: - debug: msg="l33t.com appears to be down. Try again later." always: - debug: msg="Attempt completed."
-
Challenge
Configure the Playbook to Replace All Instances of `#BLANKLINE` with the Line Break Character `\n`
Using a text editor, such as
vim
, edit the block section in/home/ansible/report.yml
to contain the new lines as shown below:--- - hosts: localhost tasks: - name: download transaction_list block: - get_url: url: http://apps.l33t.com/transaction_list dest: /home/ansible/transaction_list - replace: path: /home/ansible/transaction_list regexp: "#BLANKLINE" replace: '\n' - debug: msg="File downloaded" rescue: - debug: msg="l33t.com appears to be down. Try again later." always: - debug: msg="Attempt completed."
-
Challenge
Verify Configuration by Running the Playbook
ansible-playbook /home/ansible/report.yml
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.