Skip to content

Load EVE-NG Images (HyOps)

  • Purpose: Stage and install EVE-NG images from URL, local, or remote sources onto an existing EVE-NG host.
  • Trigger: Initial lab content load, curriculum refresh, or controlled image catalog update.
  • Impact: Writes under /opt/unetlab/addons on the target EVE-NG host.
  • Severity: P2 Pre-reqs: Base EVE-NG service is already ready, SSH access works, and source paths or URLs are approved.

  • Rollback strategy: Run hyops destroy with explicit eveng_images_destroy_paths, or rebuild the host from a clean baseline if broad image cleanup is required.

Context

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

Supported source modes:

  • url
  • local
  • remote

The module is intentionally separate from the base EVE-NG blueprint so shared, academy, and instructor lanes can reuse the same foundation with different image catalogs.

Preconditions and safety checks

  • Correct environment selected (--env dev|staging|prod).
  • Base EVE-NG module state is ok.
  • Source images are approved for the target lane.
  • URL downloads are reachable, or local/remote sources are accessible from the execution runner.
  • For destructive cleanup, eveng_images_destroy_paths only contains paths under /opt/unetlab/addons/.

Steps

  1. Validate inputs

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

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

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

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

Check:

  • status is ok
  • outputs.cap.lab.eveng.images is present
  • outputs.eveng_images_requested_count matches the intended batch

  • Controlled cleanup

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

Verification

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

Post-actions and clean-up

  • Remove temporary staging or controller-side source files if they were created for one-off imports.
  • Update curriculum or inventory references if image names changed.
  • Keep image runs separate from lab-content runs so troubleshooting stays clean.

References