OpenNebula#
The OpenNebula (ON) datasource supports the contextualisation disk.
OpenNebula’s virtual machines are contextualised (parametrised) by
CD-ROM image, which contains a shell script context.sh
, with
custom variables defined on virtual machine start. There are no
fixed contextualisation variables, but the datasource accepts
many used and recommended across the documentation.
Datasource configuration#
Datasource accepts the following configuration options:
dsmode:
values: local, net, disabled
default: net
These specify whether the datasource will be processed in local
(pre-networking) stage, net
(post-networking) stage or be disabled
.
parseuser:
default: nobody
Unprivileged system user used for contextualisation script processing.
Contextualisation disk#
The following criteria are required:
Must be formatted with iso9660 filesystem or have a filesystem label of
CONTEXT
orCDROM
.Must contain the file
context.sh
with contextualisation variables. The file is generated by OpenNebula and has aKEY='VALUE'
format that can be easily read by bash.
Contextualisation variables#
There are no fixed or standard contextualisation variables in OpenNebula. The following variables were found in various places and in revisions of the OpenNebula documentation. Where multiple similar variables are specified, only the one found first is taken.
DSMODE
: Datasource mode configuration override. Values are:local
,net
,disabled
.
DNS
ETH<x>_IP
ETH<x>_NETWORK
ETH<x>_MASK
ETH<x>_GATEWAY
ETH<x>_GATEWAY6
ETH<x>_DOMAIN
ETH<x>_DNS
ETH<x>_SEARCH_DOMAIN
ETH<x>_MTU
ETH<x>_IP6
ETH<x>_IP6_ULA
ETH<x>_IP6_PREFIX_LENGTH
ETH<x>_IP6_GATEWAY
Static network configuration.
SET_HOSTNAME
HOSTNAME
Instance hostname.
PUBLIC_IP
IP_PUBLIC
ETH0_IP
If no hostname has been specified, cloud-init
will try to create a
hostname from the instance’s IP address in local
dsmode. In net
dsmode, cloud-init
tries to resolve one of its IP addresses to get
the hostname.
SSH_KEY
SSH_PUBLIC_KEY
One or multiple SSH keys (separated by newlines) can be specified.
USER_DATA
USERDATA
Cloud-init
user data.
Example configuration#
This example cloud-init
configuration (cloud.cfg
) enables
OpenNebula datasource only in net
mode.
disable_ec2_metadata: True
datasource_list: ['OpenNebula']
datasource:
OpenNebula:
dsmode: net
parseuser: nobody
Example VM’s context section#
CONTEXT=[
SSH_KEY="$USER[SSH_KEY]
$USER[SSH_KEY1]
$USER[SSH_KEY2]",
PUBLIC_IP="$NIC[IP]",
USER_DATA="#cloud-config
# see https://help.ubuntu.com/community/CloudInit
packages: []
mounts:
- [vdc,none,swap,sw,0,0]
runcmd:
- echo 'Instance has been configured by cloud-init.' | wall
" ]