Virtual machine image builder (based on EOLE3 builder)
Go to file
2023-06-29 16:38:20 +02:00
post-processors First recipes 2023-06-29 16:38:20 +02:00
recipes/alpine First recipes 2023-06-29 16:38:20 +02:00
tools First recipes 2023-06-29 16:38:20 +02:00
build First recipes 2023-06-29 16:38:20 +02:00
LICENSE Initial commit 2022-11-02 10:52:10 +01:00
README.md First recipes 2023-06-29 16:38:20 +02:00

vms

Virtual machine image builder (based on EOLE3 builder)

What do we have here ?

The "build" tool

This is a simple wrapper to help you build and publish images with "packer" and "one-templates"

The "publisher" tool called "tools/one-templates"

This is a simple script to create and manage OpenNebula "Templates", all kinds of templates:

  • VMs
  • Networks
  • Images
  • Services

With this tool you can publish all the images and the necessary templates to actually use what you build in OpenNebula.

What you need ?

  • Packer >= 1.6.0
  • virt-sparsify (optional)
  • Ruby
  • These ruby gems:
    • opennebula
    • opennebula-cli
    • opennebula-oca
    • webrick
  • An OpenNebula server or cluster >= 5.6 (with OpenNebula Flow and OneGate enabled)
  • An account with the proper ACL on the OpenNebula server/cluster to:
    • create/manage images
    • create/manage vm templates
    • create/manage services templates
    • create/manage network templates

How to use the "build" tool ?

First you need to create the "publisher" "tools/one-templates" configuration. This configuration is located in "./tools/.one-templates.conf". Note that you can use a different configuration file setting the TEMPLATER_CONFIG environment file before starting the build script.

$ cat ./tools/one-templates.conf
user: myOpenNebulaUser
token: myVerySecretOpenNebulaTemporaryToken
builder_addr: IP Address of the building machine (often your own local IP address)
endpoint: http://myOpenNebulaServerAddress...
flow_endpoint: http://myOpenNEbulaServerAddress/oneflow
datastore_id: TheDataStoreIDForMyImages

When this configuration is done you can use the "build" tool.

The recipes are organised by OS, version and flavor, one OS contains various versions and flavors. You can list the available OS and versions with this command:

$ ./build list
You can build :
  * alpine :
    - 3.16

To build all the flavors of a version you can run this command:

$ ./build start alpine 3.16

To build only one flavor for one version you can run this command:

$ ./build run alpine 3.16 k3s

!!! Make sure the "base" flavor is build before trying to build another flavor. !!!

$ ./build run alpine 3.16 base