Philippe Caseiro d11d461dbc | ||
---|---|---|
.vscode | ||
post-processors | ||
recipes | ||
tools | ||
.gitignore | ||
LICENSE | ||
README.md | ||
build |
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
For OpenNebula you will need :
- 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
For Local qemu buidls you will need:
- qemu-kvm
For Local Virtualbox builds you will need:
- virtualbox
For Local VMWare Workstation builds you will need:
- vmware-workstation (with a valid licence, 30 trial is fine)
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