Age | Commit message (Collapse) | Author |
|
read_seeded also takes a 'file_retry' which defaults to zero.
This is so that if the seed path is a file, retries are not done.
read_optional_seed is not passing 'retries=0' here, but
all the users of read_optional_seed are using it from file.
|
|
|
|
|
|
|
|
This fixes (LP: #850206). See bug for more info.
LP: #850206
|
|
|
|
Thanks to Mike Mouulton and Avishai Ish-Shalom.
LP: #845208
|
|
lp:~avishai-ish-shalom/cloud-init/chef
Bringing in 'initial_properties' support from lp:~avishai-ish-shalom/cloud-init/chef
|
|
Support both 'validation_cert' and 'validation_key' for backwards compatibility
Cleaned up line length
|
|
Added support for 'node_name' and 'environment' properties.
Renamed 'validation_cert' to 'validation_key' to match Chef's nomenclature.
|
|
|
|
LP: #845155
|
|
|
|
|
|
LP: #845161
|
|
validation cert name
|
|
This should not happen any time in the near future, but /var/run
is actually legacy, so accept that it might not be there.
|
|
|
|
|
|
This is the same change made in DataSourceNoCloud, but to the
OVF DataSource.
|
|
LP: #832175
|
|
This allows for the chance that platform.node returned
a fully qualified domainname. Per its doc:
Returns the computer's network name (which may not be fully
qualified)
|
|
If there is no local-hostname, then the base DataSource will
make attempts to resolve it. Having a default here meant that
it would be taken as truth.
|
|
This continues the change in this file that intended to wait
for all networking to be up. The logic that was there would
cause it to start cloud-init immediately if a single non-lo
interface was up.
This will basically just check if 'static-network-up' has occurred
during this boot.
There could be an issue if /var/run was populated from a previous
boot, but since its really expected to be a tmpfs, can't have anything
in it.
|
|
Previously the Ubuntu specific and confusing string "ubuntuhost" was
used. Use something that gives a better hint as to where it came from
for get_instance_id()
|
|
These changes update the .ssh/authorized_keys rather than simply appending
This is preferable as ssh daemon picks the first key that is present.
This fixes 2 issues where something had edited a .ssh/authorized_keys
prior to cloud-init getting at it.
a.) LP: #434076 a user prior to re-bundling
b.) LP: #833499 the hypervisor
If you want to enable ssh access for root user, the proper way to do it is
with 'disable_root: False' in cloud-config.
LP: #434076, #833499
|
|
When 'cloud-init start' (network) runs, it will print information
about the systems network info to the console. This will help in debugging
instances.
LP: #828186
|
|
Fix issue where 'isatty' would return true for apt-add-repository.
It would get stdin which was attached to a terminal (/dev/console) and would
thus hang when running during boot.
This was done by changing all users of util.subp to have None input unless
input was given. In that case, the input will be the string passed in.
LP: #831505
|
|
|
|
|
|
add-apt-repository (LP #831505)
|
|
|
|
|
|
|
|
For better or worse, 'manage_etc_hosts' means
"write /etc/hosts from the template"
The default setting is 'False', which was not to update
/etc/hosts at all. Now, we're updating /etc/hosts, claiming
the 127.0.1.1 entry as owned by cloud-init if manage_etc_hosts is
false.
|
|
|
|
|
|
This adds a method 'get_hostname_fqdn' to cloudinit.util, and then
uses this method for getting the hostname and fqdn in places that get
hostname.
The single place for getting it right will help.
|
|
This fixes a couple issues with the updating of /etc/hosts
by the update-etc-hosts cloud-config module.
* if hostname changed in the life of the instance, an additional
"header" line would be added.
* any comment lines like '#mycomment' would be deleted because
they did not have 2 fields
|
|
|
|
consume_userdata should really run always, rather than once per instance.
The documentation says that boothooks were on their own for per-instance
but since this routine was only being called once, they would only get
called once.
This modifies the behavior to be:
user_script: per_always
cloud_config : per_always
upstart_job : per_instance
cloud_boothook: per_always
In order to not break part handlers that are existing, and expect to only be
called once per instance, this adds a 'handler_version' item in a handler
that can indicate the version (currently 1 or 2). If it is 2, then the
hander will be passed the frequency (per-instance or per-always) that this
is being run. That way the handler can differenciate between them.
This also makes 'bootcmd' run every boot. That should be changable in
cloud-config though, so users who dont like the behavior can modify it.
LP: #819507
|
|
LP: #810044
|
|
the new 'include-once' type will include a URL only once, and cache its
results. This way you can use expiring URLs or one-time use urls to
pass sensitive data to the instance. The instance will cache the result
in a local root only file for subsequent boots.
Additionally, add support for specifying public and private keys for
mcollective via cloud-config.
Both these features come via Marc Cluet.
|
|
base64 encode will grow with the size of the url, possibly resulting
in silly-long filenames. md5sum will keep it to a constant length.
|
|
at this point, the following user-data file in
/var/lib/cloud/seed/nocloud-net/user-data will do what you would expect:
$ cat > /var/lib/cloud/seed/nocloud-net/user-data <<EOF
#include-once
http://169.254.169.254/2011-01-01/user-data
EOF
$ python -c \
'import boto.utils, pprint; pprint.pprint(boto.utils.get_instance_metadata())' |
sudo tee /var/lib/cloud/seed/nocloud-net/meta-data
Then,
$ sudo sh -c 'for i in /var/lib/cloud/*; do [ ${i##*/} = "seed" ] &&
continue; rm -Rf "$i"; done'
$ sudo reboot
You will then find a file in /var/lib/cloud/instance/data/urlcache/
that has the contents of user-data from the metadata service.
It will not be downloaded again as long as that file is present.
|
|
|
|
Marc's implementation would only ever process the include-once urls a single
time. This changes that to process them every time, with the second time
coming from a file on disk rather than the url.
You can then do expiring or one time use URLs in the include-once and
have all function of if the content was there every time.
The cached file is readable by root-only.
|
|
|
|
|
|
|