Show ON: Pocket Nebula (Dev Container with OpenNebula CLI + Ansible Preconfigured)

Hi folks,

Created Pocket Nebula:sparkles:, a containerised development environment for OpenNebula + VSCode.

Contains a quick-start deployment of the latest Ruby CLI (for API calls), Pyone, and Ansible (for host and guest configuration).

I wanted a way to develop against ON while having minimal dependencies on my system and settled on a Dev Container setup. This is the bones of what I’ve been using for the last few months.

Feedback welcome.

3 Likes

Hi @aioue :star_struck:

This sounds really interesting! Thank you so much for sharing this project! It sounds like a very useful and convenient development setup for OpenNebula CLIs, APIs and more.

I’ll try to test it one of these days to see how it works and give you feedback —it seems very promising :rocket:

Best,
Victor.

1 Like

Update: Pocket Nebula :sparkles: v1.0.0 Released! :rocket:

Hey @vpalma and everyone,

I’ve been working on improving Pocket Nebula based on feedback and my own usage over the past few months. I’m excited to announce that v1.0.0 is now available with some significant enhancements.

What’s New in v1.0.0

:clipboard: Enhanced Documentation

  • Complete step-by-step setup guide from git clone to running your first automation

  • Clear indicators for when commands should run on host vs inside the container

  • Comprehensive troubleshooting section with specific solutions

:hammer_and_wrench: Improved Development Experience

  • Pre-configured with latest Ansible via pipx (better isolation)

  • ansible-lint included for code quality checks

  • Comprehensive .gitignore covering all the common gotchas

  • Better VS Code integration with relevant extensions

:high_voltage: Streamlined Setup

  • Multiple authentication methods (environment variables, vault files, config files)

  • Automatic mounting of SSH keys, OpenNebula credentials, and Ansible vault

  • Clear success indicators so you know when you’re in the right environment

Tools & Features Included

  • Ansible (latest version with pipx isolation)

  • OpenNebula CLI (Ruby-based command-line tools)

  • pyone (Python library for API integration)

  • ansible-lint (code quality and best practices)

  • VS Code extensions for Docker and Ansible support

Perfect For

  • OpenNebula automation projects

  • Learning OpenNebula with Ansible

  • Cloud infrastructure automation

  • DevOps teams working with OpenNebula

  • Anyone wanting a clean, isolated development environment

Quick Start


# Clone and setup

git clone https://github.com/aioue/pocket-nebula.git

cd pocket-nebula

# Set your OpenNebula credentials

export ONE_USERNAME=your-username

export ONE_PASSWORD=your-password

export ONE_XMLRPC=https://your-opennebula-host/RPC2

# Open in VS Code and launch dev container

code .

# Then: Ctrl+Shift+P → "Dev Containers: Reopen in Container"

The repository is now super clean, with comprehensive documentation. It’s designed to get you from zero to running OpenNebula automation in minutes.

Would love to hear your feedback if you get a chance to try it out! The repository is completely open and ready for contributions.

Repository: GitHub - aioue/pocket-nebula: Dev Container for OpenNebula Administration (CLI + Ansible)

Release: v1.0.0

Size: 540KB (lightweight!)

Thanks for the encouragement to keep improving this! :folded_hands:

1 Like

Hi @aioue!

Wow, this release looks great! thanks for sharing it!

I just tried your project, and the installation process was super straightforward; it took me less than five minutes to get everything up and running :rocket: The repository is also impressively clean and well-organized, great job! :smile:

That said, when I entered the environment, I ran into this error:

vscode ➜ /workspaces/pocket-nebula (main) $ onevm list
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require': cannot load such file -- load_opennebula_paths (LoadError)
        from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require'
        from /var/lib/gems/3.2.0/gems/opennebula-cli-7.0.0/bin/onevm:30:in `<top (required)>'
        from /usr/local/bin/onevm:25:in `load'
        from /usr/local/bin/onevm:25:in `<main>'

OpenNebula 7.0 was just released recently, and it changed how paths are loaded (load_opennebula_paths file). Were your tests done using version 6.10? Are you seeing the same issue with 7.0? If you need any logs or further information, don’t hesitate to let me know :wink: I just want to rule out whether this is something on my end.

Thanks again for contributing to the community with such amazing tools! :sparkles:

Best,
Victor

1 Like

Hi @vpalma, thanks for finding the issue and pasting the error.

Have drafted a new release.

Good spot, yes it’s because the latest Ruby CLI isn’t backwards compatible with 6!

I’ve added some server version detection code, it aims to detect the right tools version and fall-back to 6.10 if it fails.

Hopefully that should work!

Edit 3 hours later: Fixed missing gem install code and pushed!

1 Like

Hello @aioue,

Thanks for your contribution, it’s awesome!
I’ve sent you a DM a couple of days ago to collect some feedback, could you please check if you have time?

It would be great if we can talk about it.

Regards!