- Lab
- A Cloud Guru
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.*
Path 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
What's a lab?
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.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.