Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Scenario Contributor Guide for

This is a template scenario and contributor guide to create an scenario. You can see the existing scenarios as examples.

Making a Scenario

  1. Clone this repo.
  2. Write the scenario prompt, which is shown to the player when they login.
  3. Write the Ansible playbook to customize the environment for the player.
  4. Submit your scenario with items (2) and (3)
  5. Add the scenario to the website.

Test the Environment

After cloning, you can run vagrant up to receive the typical base environment. As you test your changes, whatever state the Vagrant box is in at the end of vagrant up is what players will receive.

Scenario Prompt

The scenario prompt is a text file that is shown to the player when they type scenario. At a minimum this file explains how to reproduce an issue the fails with SELinux Enforcing and succeeds with SElinux disabled or permissive.

Specifically put your scenario content in See that file for more information on what should go into the scenario prompt.

Ansible Playbook

The Ansible playbook configures the system such that the problem is setup for the player. Typically you install and configure some packages in a way that creates the SELinux problem of interest.

Put your Ansible content in the scenario playbooks role. For basic usage you'll be writing the role's Ansible code in this file.

Submitting your Scenario

Once your scenario prompt and Ansible playbook are tested and working, commit your changes. Use git format-patch to format the patch for email submission Send the scenario patch files to bmbouter aat or dennis.kliban aat

Once accepted we will build and publish your scenario into Vagrant Cloud which delivers the box directly to a player. Once published, the last step is to list the scenario on

Add the Scenario to

To add the scenario to, open a PR against the website repository.

Specifically, you need to make a new file in the _scenarios directory.

That file must declare three fields:

  • A slug, which is a shortname for the box and url. e.g. new_ways, all_my_content.
  • A title: The title that goes on the Scenarios page, e.g. "New Ways".
  • A description: The description that goes on the Scenarios page.

See the Scenarios page for examples of this data.


What should I write about?

Not sure what to write? Scenarios are usually based on a real situations that have happened. Our hope is that when SELinux errors are experienced in different ways, that those can be written as a scenario for others to try to solve.

Why should I contribute?

Each scenario contributed can create a learning experience for many people. Increasing the understanding of SELinux allows for more people to contribute to a more secure world.


A template for contributing scenarios






No releases published


No packages published