Virtual machine image builder (based on EOLE3 builder)
Go to file
Philippe Caseiro a84f6ac003 feat(recipe): adding alpine 3.17 version 2022-12-28 10:17:15 +01:00
post-processors First recipes 2022-12-16 09:31:52 +01:00
recipes/alpine feat(recipe): adding alpine 3.17 version 2022-12-28 10:17:15 +01:00
tools First recipes 2022-12-16 09:31:52 +01:00
LICENSE Initial commit 2022-11-02 10:52:10 +01:00
README.md First recipes 2022-12-16 09:31:52 +01:00
build First recipes 2022-12-16 09:31:52 +01:00

README.md

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 diffrent 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 (offen you 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 falvors. You can list the availabled OS and versions whith 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 on version you can run this command :

$ ./build run alpine 3.16 k3s

!!! Make shure the "base" falvor is build before trying to build another falvor. !!!

$ ./build run alpine 3.16 base