summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2012-04-05 00:49:11 -0400
committerScott Moser <smoser@ubuntu.com>2012-04-05 00:49:11 -0400
commitc2a4447527d5e8b2e2999b6f1832577203a64f2a (patch)
treeaa58108146e35f5ab5d93500c1116bcad12d6ce8 /doc
parentb39abf5bbe51d62d1ef1dd1e813720eafc1ddc85 (diff)
parent6d62fe860f55faf2d7b0b6216c11305e114c5214 (diff)
downloadvyos-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.txt7
-rw-r--r--doc/kernel-cmdline.txt48
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