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
|
The 'OpenNebula' DataSource supports the OpenNebula contextualization disk.
The following criteria are required to be identified by
DataSourceOpenNebula as contextualization disk:
* must be formatted with iso9660 filesystem or labeled as CDROM
* must be un-partitioned block device (/dev/vdb, not /dev/vdb1)
* must contain
* context.sh
== Content of config-drive ==
* context.sh
This is the only mandatory file on context disk, the rest content depends
on contextualization parameter FILES and thus is optional. It's
a shell script defining all context parameters. This script is
processed by bash (/bin/bash) to simulate behaviour of common
OpenNebula context scripts. Processed variables are handed over
back to cloud-init for further processing.
== Configuration ==
Cloud-init's behaviour can be modified by context variables found
in the context.sh file in the folowing ways (variable names are
case-insensitive):
* dsmode:
values: local, net, disabled
default: None
Tells if this datasource will be processed in local (pre-networking) or
net (post-networking) stage or even completely disabled.
* ssh_key:
default: None
If present, these key(s) will be used as the public key(s) for
the instance. More keys can be specified in this single context
variable, but each key must be on it's own line. I.e. keys must
be separated by newlines.
* hostname:
default: None
Custom hostname for the instance.
* public_ip:
default: None
If hostname not specified, public_ip is used to DNS resolve hostname.
* 'user_data' or 'userdata':
default: None
This provides cloud-init user-data. See other documentation for what
all can be present here.
== 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
" ]
|