diff options
author | Scott Moser <smoser@ubuntu.com> | 2012-04-05 00:49:11 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2012-04-05 00:49:11 -0400 |
commit | c2a4447527d5e8b2e2999b6f1832577203a64f2a (patch) | |
tree | aa58108146e35f5ab5d93500c1116bcad12d6ce8 /doc | |
parent | b39abf5bbe51d62d1ef1dd1e813720eafc1ddc85 (diff) | |
parent | 6d62fe860f55faf2d7b0b6216c11305e114c5214 (diff) | |
download | vyos-cloud-init-c2a4447527d5e8b2e2999b6f1832577203a64f2a.tar.gz vyos-cloud-init-c2a4447527d5e8b2e2999b6f1832577203a64f2a.zip |
Allow a url to cloud-config data to be specified on kernel config line
In order to allow an ephemeral, or otherwise pristine image to
receive some configuration, cloud-init will read a url directed by
the kernel command line and proceed as if its data had previously existed.
For more information, see doc/kernel-cmdline.txt
Diffstat (limited to 'doc')
-rw-r--r-- | doc/examples/cloud-config-datasources.txt | 7 | ||||
-rw-r--r-- | doc/kernel-cmdline.txt | 48 |
2 files changed, 55 insertions, 0 deletions
diff --git a/doc/examples/cloud-config-datasources.txt b/doc/examples/cloud-config-datasources.txt index 63a6cfc4..d10dde05 100644 --- a/doc/examples/cloud-config-datasources.txt +++ b/doc/examples/cloud-config-datasources.txt @@ -24,3 +24,10 @@ datasource: consumer_key: Xh234sdkljf token_key: kjfhgb3n token_secret: 24uysdfx1w4 + + NoCloud: + # default seedfrom is None + # if found, then it should contain a url with: + # <url>/user-data and <url>/meta-data + # seedfrom: http://my.example.com/i-abcde + seedfrom: None diff --git a/doc/kernel-cmdline.txt b/doc/kernel-cmdline.txt new file mode 100644 index 00000000..0b77a9af --- /dev/null +++ b/doc/kernel-cmdline.txt @@ -0,0 +1,48 @@ +In order to allow an ephemeral, or otherwise pristine image to +receive some configuration, cloud-init will read a url directed by +the kernel command line and proceed as if its data had previously existed. + +This allows for configuring a meta-data service, or some other data. + +Note, that usage of the kernel command line is somewhat of a last resort, +as it requires knowing in advance the correct command line or modifying +the boot loader to append data. + +For example, when 'cloud-init start' runs, it will check to +see if if one of 'cloud-config-url' or 'url' appear in key/value fashion +in the kernel command line as in: + root=/dev/sda ro url=http://foo.bar.zee/abcde + +Cloud-init will then read the contents of the given url. +If the content starts with '#cloud-config', it will store +that data to the local filesystem in a static filename +'/etc/cloud/cloud.cfg.d/91_kernel_cmdline_url.cfg', and consider it as +part of the config from that point forward. + +If that file exists already, it will not be overwritten, and the url parameters +completely ignored. + +Then, when the DataSource runs, it will find that config already available. + +So, in able to configure the MAAS DataSource by controlling the kernel +command line from outside the image, you can append: + url=http://your.url.here/abcdefg +or + cloud-config-url=http://your.url.here/abcdefg + +Then, have the following content at that url: + #cloud-config + datasource: + MAAS: + metadata_url: http://mass-host.localdomain/source + consumer_key: Xh234sdkljf + token_key: kjfhgb3n + token_secret: 24uysdfx1w4 + +Notes: + * Because 'url=' is so very generic, in order to avoid false positives, + cloud-init requires the content to start with '#cloud-config' in order + for it to be considered. + * The url= is un-authed http GET, and contains credentials + It could be set up to be randomly generated and also check source + address in order to be more secure |