Skip to content

Load EVE-NG Labs (HyOps)

  • Purpose: Synchronize lab content from controller, Git, or remote sources into an existing EVE-NG host.
  • Trigger: Course refresh, instructor lane update, or controlled lab catalog rollout.
  • Impact: Writes under /opt/unetlab/labs on the target EVE-NG host.
  • Severity: P2 Pre-reqs: Base EVE-NG service is already ready, SSH access works, and source repositories or directories are approved.

  • Rollback strategy: Run hyops destroy with the same overlay to remove explicitly managed folders, or rebuild the host from a clean baseline when a full lab reset is preferred.

Context

This runbook covers platform/linux/eve-ng-labs, the lab-content layer used after platform/linux/eve-ng is ready.

Supported source modes:

  • local
  • git
  • remote

Keep lab-content runs separate from base service and image runs so rollback and curriculum updates stay predictable.

Preconditions and safety checks

  • Correct environment selected (--env dev|staging|prod).
  • Base EVE-NG module state is ok.
  • Source repository, path, or remote host is reachable from the execution runner.
  • Target lab folders are relative and intended for this lane.

Steps

  1. Validate inputs

    hyops validate --env dev \
      --module platform/linux/eve-ng-labs \
      --inputs "$HYOPS_CORE_ROOT/modules/platform/linux/eve-ng-labs/examples/inputs.min.yml"
    
  2. Preflight

    hyops preflight --env dev --strict \
      --module platform/linux/eve-ng-labs \
      --inputs "$HYOPS_CORE_ROOT/modules/platform/linux/eve-ng-labs/examples/inputs.min.yml"
    
  3. Apply

    hyops apply --env dev \
      --module platform/linux/eve-ng-labs \
      --inputs "$HYOPS_CORE_ROOT/modules/platform/linux/eve-ng-labs/examples/inputs.min.yml"
    
  4. Verify state

    cat $HOME/.hybridops/envs/dev/state/modules/platform__linux__eve-ng-labs/latest.json
    

Check:

  • status is ok
  • outputs.cap.lab.eveng.labs is present
  • outputs.eveng_lab_folder_count matches the intended lab folders

  • Controlled cleanup

    hyops destroy --env dev \
      --module platform/linux/eve-ng-labs \
      --inputs "$HYOPS_CORE_ROOT/modules/platform/linux/eve-ng-labs/examples/inputs.min.yml"
    

Verification

  • Target host contains the expected lab folders under /opt/unetlab/labs.
  • State file: $HOME/.hybridops/envs/<env>/state/modules/platform__linux__eve-ng-labs/latest.json
  • Logs: $HOME/.hybridops/envs/<env>/logs/module/platform__linux__eve-ng-labs/<run_id>/

Post-actions and clean-up

  • Remove temporary local or remote staging content if it was created only for this rollout.
  • Re-run the healthcheck module when the catalog or lab tree changed materially.
  • Keep lab rollouts lane-specific so shared and academy lanes do not drift into each other.

References