1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
The `OpenNebula`_ DataSource supports the OpenNebula contextualization disk.
See `contextualization overview`_, `contextualizing VMs`_ and
`network configuration`_ in the public documentation for
more information.
OpenNebula's virtual machines are contextualized (parametrized) by
CD-ROM image data, which contains a shell script *context.sh* with
custom variables defined on virtual machine start. There are no
fixed contextualization variables, but the datasource accepts
many used and recommended across OpenNebula's documentation.
Datasource configuration
~~~~~~~~~~~~~~~~~~~~~~~~~
Datasource accepts following configuration options.
::
dsmode:
values: local, net, disabled
default: net
Tells if this datasource will be processed in 'local' (pre-networking) or
'net' (post-networking) stage or even completely 'disabled'.
Contextualization disk
~~~~~~~~~~~~~~~~~~~~~~
The following criteria are required:
1. Must be formatted with `iso9660`_ fs. or have fs. label of **CDROM**
2. Must contain file *context.sh* with contextualization variables.
File is generated by OpenNebula, it has a KEY="VALUE" format and
can be easily read by shell script.
Contextualization variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are no fixed contextualization variables in OpenNebula, no standard.
Following variables were found on various places and revisions of
the OpenNebula documentation. Where multiple similar variables are
specified, only first found is taken.
::
DSMODE
Datasource mode configuration override. Values: local, net, disabled.
::
DNS
ETH<x>_IP
ETH<x>_NETWORK
ETH<x>_MASK
ETH<x>_GATEWAY
ETH<x>_DOMAIN
ETH<x>_DNS
Static `network configuration`_.
::
HOSTNAME
Instance hostname.
::
PUBLIC_IP
IP_PUBLIC
ETH0_IP
If no hostname has been specified, cloud-init will try to create hostname
from instance's IP address in 'local' dsmode. In 'net' dsmode, cloud-init
try to resolve one of its IP addresses to get 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 OpenNebula's Virtual Machine template
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CONTEXT=[
PUBLIC_IP="$NIC[IP]",
SSH_KEY="$USER[SSH_KEY]
$USER[SSH_KEY1]
$USER[SSH_KEY2] ",
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
" ]
.. _OpenNebula: http://opennebula.org/
.. _contextualization overview: http://opennebula.org/documentation:documentation:context_overview
.. _contextualizing VMs: http://opennebula.org/documentation:documentation:cong
.. _network configuration: http://opennebula.org/documentation:documentation:cong#network_configuration
.. _iso9660: https://en.wikipedia.org/wiki/ISO_9660
|