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/labson 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 destroywith 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:
localgitremote
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¶
-
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" -
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" -
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" -
Verify state
cat $HOME/.hybridops/envs/dev/state/modules/platform__linux__eve-ng-labs/latest.json
Check:
statusisokoutputs.cap.lab.eveng.labsis present-
outputs.eveng_lab_folder_countmatches 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.