Skip to content

Conversation

@pablodelarco
Copy link
Contributor

@pablodelarco pablodelarco commented Dec 17, 2025

This PR adds an interactive wizard and generator script for creating Docker-based OpenNebula appliances automatically.

Features:

  • Interactive wizard with arrow-key navigation for easy configuration
  • Support for 12 base operating systems:
    • Ubuntu 20.04, 22.04, 24.04
    • Debian 11, 12
    • AlmaLinux 8, 9
    • Rocky Linux 8, 9
    • openSUSE Leap 15
  • Automatic network configuration type detection per OS
  • Generates complete Packer build configuration
  • Generates appliance definition files
  • Supports Docker containers with configurable:
    • Port mappings
    • Environment variables
    • Volume mounts
  • SSH and VNC console access configuration
  • Auto-login console support

Usage:
./appliance-wizard.sh # Interactive mode
./generate-docker-appliance.sh myapp.env # Generate from config


Closed: Superseded by #107 which contains the latest version with ARM64 support and improvements.

This PR adds an interactive wizard and generator script for creating
Docker-based OpenNebula appliances automatically.

Features:
- Interactive wizard with arrow-key navigation for easy configuration
- Support for 12 base operating systems:
  - Ubuntu 20.04, 22.04, 24.04
  - Debian 11, 12
  - AlmaLinux 8, 9
  - Rocky Linux 8, 9
  - openSUSE Leap 15, 15.5, 15.6
- Automatic network configuration type detection per OS
- Generates complete Packer build configuration
- Generates appliance definition files
- Supports Docker containers with configurable:
  - Port mappings
  - Environment variables
  - Volume mounts
- SSH and VNC console access configuration
- Auto-login console support

Usage:
  ./appliance-wizard.sh          # Interactive mode
  ./generate-docker-appliance.sh myapp.env  # Generate from config
OpenNebula Community Contributor added 5 commits December 19, 2025 08:37
- Add ASCII art logo for 'One Appliance Wizard'
- Add styled title box with version info (v1.0.0 'Nebula')
- Add feature highlights section
- Improve step display with progress bar and icons
- Improve menu selector with box design
- Improve input prompts with styled formatting
- Add success banner with ASCII art
- Improve navigation hints styling
- Add thank you message with community attribution
- Replace illegible ASCII art with clean OpenNebula FIGlet logo
- Simplify header to just logo + version + tagline
- Remove verbose UI boxes and decorations
- Simplify step display to clean [n/n] format
- Simplify menu selector (no box borders)
- Simplify prompts and messages
- Reduce visual clutter throughout
- Check if base OS image exists before generating appliance
- Alert user if image is missing with clear message
- Offer 3 options: build now, continue anyway, or go back to OS selection
- Show estimated build time and helpful commands
- Add Prowler appliance based on prowlercloud/prowler:latest-amd64
- Uses Ubuntu 24.04 as base OS with Docker
- Includes Packer configuration with 16GB disk size
- Add Prowler logo for marketplace display
- Cloud security platform for AWS, Azure, GCP, Kubernetes compliance scanning
- Fix generate-docker-appliance.sh to handle empty env vars without trailing spaces
- Fix prowlercloud context.yaml trailing space on CONTAINER_ENV line
@roamingengineer311
Copy link
Collaborator

Supported OS: Ubuntu 20.04, 22.04, 24.04; Debian 11, 12; AlmaLinux 8, 9; Rocky Linux 8, 9; openSUSE Leap 15.
However, Ubuntu 20.04 is not available in the wizard.

And in my opinion, better to delete from the wizard not minimal Ubuntus.

@roamingengineer311
Copy link
Collaborator

roamingengineer311 commented Dec 24, 2025

I tested wizard on 2 containers:

  • nginx:latest
  • hashicorp/vault:latest

Both of them failed on Alma*, Rocky* and Debian 12.

While Alma/Rocky is pretty obvious

==> qemu.vault: Resizing hard drive...
==> qemu.vault: Error creating hard drive: QemuImg error: qemu-img: Use the --shrink option to perform a shrink operation.
==> qemu.vault: qemu-img: warnin
g: Shrinking an image will delete all data beyond the shrunken image's end. Before performing such an operation, make sure there is no important data there.

Debian12 has quite strange behavior related to DNS (both containers build failed).

Log is attached.
vault-debian12.log

@roamingengineer311
Copy link
Collaborator

And in general.

  1. When build fails need to cleanup directory in marketplace-community/appliances/
  2. Need to improve tests (same as you did for Nextcloud-AIO), but you also need to add checks that env VARS are working, port mappings and docker mounts are correct
    Features that would be nice to have in the future:
  • Autotests on successful build
  • I believem that you previously approached this by passing env file to the the script, so it is nice to have also same functionality as wizard but with file with predefined variables

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants