Skip to main content

Learn any cloudTerraform LearnLabs

Terraform labs

WorkspacesUnknown

Each lab below opens in VS Code in your browser with az, terraform, kubectl, helm and ansible already installed, or runs on your own machine from the same container image. Nothing here installs anything on your computer beyond Docker, and nothing you do in a lab reaches anything else: the workspaces run on the Hybrid Lab host, a single server whose Azure Arc status is on the live card further down this page.

Open lab opens the lab's own page: its objectives and steps, and the workspace in a pane. The first time, you sign in with GitHub in a new tab that brings you back, approve the workspace, and land in the lab folder. Workspaces stop after an hour of inactivity and are limited to one CPU and two gigabytes of memory, so treat them as scratch space and keep anything you want in your own repository.

How labs work

Lab
A structured exercise on this site: what you will learn, what to have ready, the steps in order, and where a check can confirm your work. Each lab is listed under the provider it teaches.
Desktop
The workspace a lab opens in: VS Code in your browser, running in a container on the Hybrid Lab host with the lab’s tools installed and its folder open. You sign in with GitHub, and the workspace stops on its own after an hour of inactivity.
Agent
The job runner on the same host. It takes a file or folder you submit, runs one fixed check on it (a Terraform validate, an Ansible syntax check) in a sandbox with no network, and returns what the tool printed. Nothing you submit is executed against anything.

Pick a lab

  • Validate a Landing Zone Builder download

    Take the zip the Landing Zone Builder at /tools/landing-zone hands you, unpack it in the workspace, and run terraform init, fmt and validate against the Azure Verified Modules it declares — the same checks the lab runner applies before anything is planned.

    Intermediateabout 25 minutesToolsterraform, az

    Open lab Validate a Landing Zone Builder download: steps, and the workspace; GitHub sign-in required for the workspace
    Run it locally

    Change into the folder that holds your files first; the container mounts it at /workspace. Pick the line for the shell you are in.

    PowerShell
    docker run --rm -it -v ${PWD}:/workspace hybridcloudworks/hcw-lab:latest
    bash
    docker run --rm -it -v "$PWD":/workspace hybridcloudworks/hcw-lab:latest
  • Terraform validate, step by step

    Start from a small root that passes, see what terraform init -backend=false, terraform fmt -check and terraform validate each check, break it three different ways to learn which command catches which mistake, and find out why init works here with no registry at all.

    Introductoryabout 20 minutesToolsterraform

    Open lab Terraform validate, step by step: steps, and the workspace; GitHub sign-in required for the workspace
    Run it locally

    Change into the folder that holds your files first; the container mounts it at /workspace. Pick the line for the shell you are in.

    PowerShell
    docker run --rm -it -v ${PWD}:/workspace hybridcloudworks/hcw-lab:latest
    bash
    docker run --rm -it -v "$PWD":/workspace hybridcloudworks/hcw-lab:latest

Run an agent against your landing zone

The Docker Sandboxes recipe has its own page in the Docker hub now: Run an agent in a sandbox.

Articles for these labs