ansible-challenge icon indicating copy to clipboard operation
ansible-challenge copied to clipboard

A series of challenges for the Steampunk Ansible Challenge competition

Steampunk Ansible Challenge

A series of challenges for the Steampunk Ansible Challenge competition.

Question Key information
What Ansible Challenge competition
When October 12 - November 30, 2023
Who Open to all Ansible enthusiasts and automation wizards
Why To enhance Ansible skills and demonstrate expertise
Where Register at https://steampunk.si/ansible-challenge/
Q&A Join our Discord or Reddit community for discussions

Table of Contents

  • Introduction
  • Instructions
    • Registration
    • Timeline
    • Prerequisites
    • Submission
    • Grading
    • Prizes
    • Tips and tricks
    • Support and Community
  • Acknowledgement

Introduction

Steampunk Ansible Challenge is a competition created by XLAB Steampunk. It contains a series of weekly challenges where participants will have the opportunity to showcase their Ansible playbook expertise by tackling exciting and real-world automation problems. Each challenge is designed to focus on specific aspects of writing Ansible content, such as validation, security, best practices, etc. The challenges will cover topics for Ansible beginners, as well as Ansible experts.

The Steampunk Ansible Challenge presents five individual challenges, open to all Ansible enthusiasts out there. Every week, an email will pop into your inbox, packed with all the details for you to jump into the competition. Although the new challenge will replace the previous one, you can still tackle the challenges after they officially end and compete for the grand prize.

Instructions

The following section will explain the details of how the competition works:

Registration

You can register for the challenge at https://steampunk.si/ansible-challenge/. You will receive an email confirmation and other emails will follow (e.g., when your Steampunk Spotter account is created, when a new challenge is published, etc.).

Timeline

The following dates and hours are set for the five challenges to start:

  • 1st challenge: October 12 at 16:00 CEST
  • 2nd challenge: October 19 at 16:00 CEST
  • 3rd challenge: October 26 at 16:00 CEST
  • 4th challenge: November 9 at 16:00 CET
  • 5th challenge: November 23 at 16:00 CET

The competition concludes on November 30 at 16:00 CET, when the grand winner will be announced. The solutions for challenges will be available within the solutions branch of this repository.

Each challenge and its instructions will appear on time in a separate folder within this GitHub repository. There is no time limit for solving each of the challenges.

Prerequisites

To begin, clone this repository:

git clone [email protected]:xlab-steampunk/ansible-challenges.git
cd ansible-challenges

The submission will be done through Steampunk Spotter. Steampunk Spotter provides an Ansible Playbook Scanning Tool that analyzes and offers recommendations for your Ansible Playbooks. Therefore, you will need to install the Spotter CLI to be able to submit your result of the challenge.

Ensure you have Python >= 3.7 installed and install the steampunk-spotter Python package:

pip install steampunk-spotter

We suggest installing the package into a clean Python virtual environment. After that, you will need to authenticate to the Steampunk Spotter. You can generate a new API token in the user settings within the Spotter App.

After that you can do a persistent user login:

spotter --api-token <your-api-token> login

To verify that Spotter CLI works do a scan with this example playbook:

- name: Sample playbook
  hosts: localhost
  tasks:
    - name: Get the payload from the API
      uri:
        url: "/some-url"
        method: GET
        user: " {{ username }}"

The CLI should output a scan result.

spotter scan playbook.yml

For more comprehensive usage, issue spotter --help and spotter scan --help. Refer to Spotter CLI docs for more detailed instructions if needed.

Most challenges will require only Python and Ansible. Any other requirements will be explained in README.md of the challenge.

When a new challenge is published you can just pull the changes.

git pull
cd challenge1/

And after that, you can start solving it.

Submission

The submission will be done through Steampunk Spotter. After you register for the Ansible Challenge, a new Steampunk Spotter account with a random username is created. We will also create a new Spotter organization where challenges will reside as projects. When a new challenge is published a new project will be created and visible in the Spotter App.

Navigate to Spotter App, set the organization to Ansible Challenge and find a project with the name challenge-1, click on it and copy the project ID. To submit your solution of the challenge run a new Spotter scan with the corresponding project ID. You will see the result of your scan in the console and in the Spotter App.

cd challenge1/
spotter scan --project-id <project-id-for-the-challenge> .

You can submit the challenge (do a new scan) as many times as you want. The best solution (with the fewest number of errors, warnings, and hints) will count.

Grading

Your goal for each challenge is to ensure that the submitted Ansible content is production-ready and characterized by exceptional quality, reliability, security, and trustworthiness. Each challenge will have a set of Spotter custom policies that will check your submitted content.

Your performance will be tracked on our leaderboard (at https://steampunk.si/ansible-challenge/), where you can see how you rank against other participants. Ranking will be done for each challenge and altogether.

Users will be ranked according to two aspects:

  • number of Spotter check results (errors, warnings, and hints) and
  • time taken to solve and submit the challenge from when it was published.

So, to become the Grand Winner, you must flawlessly balance precision and speed across all five challenges. The correctness will take precedence over time. Looking at the check results, any errors take precedence over warnings and these over hints.

Prizes

The one who keeps on demonstrating your outstanding playbook writing skills across all five challenges will be crowned the grand winner and receive a special prize: Meta Oculus! The top three competitors of each individual challenge will receive a bag of Steampunk goodies. If you win multiple individual challenges, you will only get the award once.

Tips and Tricks

Support and Community

To get answers, tips & tricks and chat with our experts and fellow challengers, join our Discord or Reddit Community.

Acknowledgment

The challenges were created by XLAB Steampunk, IT automation specialists and leading experts in building Enterprise Ansible Collections.