Creating an On Demand Exercise Using Caster, Player, Alloy, Steamfitter, and Moodle
This tutorial walks you from having a clean, default Crucible stack to a working on‑demand exercise (ODX) delivered through Moodle. Assumes an already-deployed platform (minimum of Caster, Player, Alloy) with defaults and the Crucible plugin is already installed on Moodle.
Prerequisites
- Appropriate roles across apps:
- Alloy:
AdministratororContent Developer - Player:
AdministratororContent Developer - Caster:
AdministratororContent Developer - Steamfitter:
AdministratororContent Developer - vCenter or Proxmox capacity sized for On-Demand (ODX) behavior
- Crucible's Moodle activity plugin installed on Moodle
Overview
Caster provides a streamlined user interface for creating and deploying cyber range topologies using Terraform. For more detailed documentation on Caster, visit Caster's documentation page.
Player provides a centralized interface where participants, teams, and administrators go to engage in a cyber event. For more detailed documentation on Player, visit Player's documentation page.
Steamfitter gives content developers the ability to create scenarios consisting of a series of scheduled tasks, manual tasks, and injects which run against virtual machines during a cyber event. For more detailed documentation on Steamfitter, visit Steamfitter's documentation page.
Alloy brings together a Player View, a Caster Directory, and a Steamfitter Scenario Template to create a playable event. For more detailed documentation on Alloy, visit Alloy's documentation page.
Moodle is an open-source Learning Management System (LMS). For more detailed documentation on Crucible's integration with Moodle, visit Crucible's 3rd-party integration documentation.
Table of Contents
- Creating an On Demand Exercise Using Caster, Player, Alloy, Steamfitter, and Moodle
- Prerequisites
- Overview
- Table of Contents
- Create the Player View Template
- Create the Caster Project and Directory
- Create a Steamfitter Scenario Template
- Create the Alloy Event Template
- Launch and Validate
- Expose the Exercise in Moodle
Create the Player View Template
Create the exercise (Player View) that participants will open. Alloy will clone this view per event. See the Player documentation on managing Views for more detailed information.
- Login to Player.
- Select your Username from the top right corner, then click Administration.
- From the left menu, select Views.
- Click the
+icon to Add a New View. - Enter a Name, Description and set the Status to "Active" or "Inactive". Select the box indicating this is a Template.
- Select Applications to add applications to this View from existing templates or a blank starting point.
- Click Teams to add teams and assign roles/permissions.
- Optionally, click Files to upload files to this View.
Create the Caster Project and Directory
Create a Caster Project and Directory to house your Terraform infrastructure-as-code for the exercise topology. See the Caster documentation on creating a Project for more details.
- Login to Caster.
- Click the
+icon to create a new Project and add a Directory that contains your Terraform configuration (modules, variables). - Ensure your configuration is ready to plan/apply.
Note: For vCenter with cluster licensing, do not enable Dynamic Host. Point Terraform at the vCenter cluster and let vCenter handle host placement. For a vCenter without cluster licensing, enable Dynamic Host in Alloy so Caster selects a host at launch. When Alloy creates a workspace, Caster sets
DynamicHost=true, chooses the least-loaded host among those assigned to the exercise, and writes agenerated_host_values.auto.tfvarswithvsphere_host_nameandvsphere_datastore. In either licensing model, when the event ends, the system deletes the workspace and releases the host usage.
Create a Steamfitter Scenario Template
Optionally, create a Scenario Template to run tasks/injects during the event. See the Steamfitter documentation on Scenarios for more details.
- Login to Steamfitter.
- Select Scenario Templates and click Add Scenario Template.
- Provide a Name and Description. Associate the Scenario Template with your Player View using the dropdown menu.
- Add Tasks to define your scenario.
Create the Alloy Event Template
Alloy ties all of the exercise components together and provide the user a centralized location to participate. See the Alloy documentation on Event Templates
- Login to Alloy
- Select your Username from the top right corner, then click Administration.
- Select Event Templates, then click Add New Event Template.
- Click the Edit icon to set a Name, Description, Duration.
- Select from the dropdown or paste the IDs for the:
- Player View Template
- Caster Directory
- Steamfitter Scenario Template
- Save your changes.
Launch and Validate
From the Alloy home page, select the Event Template, and Launch.
Observe the lifecycle:
- Player view cloned
- Caster workspace planned/applied to vCenter
- Steamfitter scenario started
- Player apps visible to teams
From Player, interact with the apps you assigned to the View.
Expose the Exercise in Moodle
Use the Crucible Plugin for Moodle activity type to start, access, and stop Crucible exercises from a Moodle course. The activity can embed the Crucible VM app in an iframe or link out to the full Player experience.