Featured resource
2025 Tech Upskilling Playbook
Tech Upskilling Playbook

Build future-ready tech teams and hit key business milestones with seven proven plays from industry leaders.

Check it out
  • Lab
    • Libraries: If you want this lab, consider one of these libraries.
    • Cloud
Google Cloud Platform icon
Labs

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.*

Google Cloud Platform icon
Lab platform
Lab Info
Level
Intermediate
Last updated
Sep 06, 2025
Duration
1h 30m

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.
Table of Contents
  1. Challenge

    Create a playbook: `/home/ansible/report.yml`

    echo "---" >> /home/ansible/report.yml

  2. 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"
    
  3. 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 the get_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."
    
  4. 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."
    
  5. 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."
    
  6. Challenge

    Verify Configuration by Running the Playbook

    ansible-playbook /home/ansible/report.yml

About the author

Pluralsight Skills gives leaders confidence they have the skills needed to execute technology strategy. Technology teams can benchmark expertise across roles, speed up release cycles and build reliable, secure products. By leveraging our expert content, skill assessments and one-of-a-kind analytics, keep up with the pace of change, put the right people on the right projects and boost productivity. It's the most effective path to developing tech skills at scale.

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.

Get started with Pluralsight