Age | Commit message (Collapse) | Author |
|
refactoring stuff and setup.py for both of those.
|
|
LP: #970071
|
|
LP: #960564
|
|
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
|
|
On the users's first login with a locale that is not supported (where 'locale'
would give errors), inform the user on how they can generate the locales
or install language support packages.
LP: #859814
|
|
This fixes a bug in chef handling if the config contained the 'validation_key'
key, but not the 'validation_cert' key.
LP: #960547
|
|
LP: #961226
|
|
If user-data is supplied that is not multipart, and is unhandled, then
log a warning. A warning by default will get to the console, so the user
can see it even if they cannot get into the instance. If they don't see
it there, it would still be available in the cloud-init log.
|
|
|
|
|
|
Thanks to Ben Howard.
|
|
LP: #942061
|
|
document usage of DataSourceNoCloud from vfat or iso disk.
|
|
|
|
LP: #857378
|
|
I believe this will resolve LP: #898373 by making DataSourceOVF restrict
its mounting of filesystems to iso9660. By doing this, it will never
mount a ext3 (or btrfs or any fs that mountall would fsck) and thus will
avoid any races with that.
LP: #898373
|
|
|
|
LP: #923043
|
|
If you were trying to parse this output with something, an empty field would be
difficult to handle, as you'd have to know the expected lengths of each field.
The '.' means empty, but then all fields are non-whitespace delimited by one or
more whitespace.
|
|
LP: #915232
|
|
LP: #914739
|
|
|
|
Previously,
* if content came into cloud-init for processing came in via a multipart
mime file, and was already base64 encoded, it would get base64 encoded
again before being handed to a part-handler.
* if it came in via a '#include'd file then it would not be encoded at
all.
This drops the internal 'parts' array, that was just converted to and then
from. Instead, we keep MIME format throughout and keep headers along
the way.
That means that a message that comes in with 'Content-Transfer-Encoding'
set to 'base64' will be decoded before being handed to a part-handler.
It also reduces the chance of failure due to content appearing to be an
actual email. Previously if content contained colon separated fields, it
might be read as headers (email.message_from_string(open("/etc/passwd","r"))
would come back as all headers, no payload)
The weak point right now is that '#include'd data cannot have mime types
associated with it (unless it is a mime formatted content). I had hoped
to read user headers and possibly set 'Content-Type' from that.
LP: #874342
|
|
This adds the ability to configure landscape client code from
cloud-config. The fields available are those that were populated to
/etc/landscape/client.conf when I ran landscape-config on precise
('11.07.1.1-0ubuntu2')
LP: #857366
|
|
the environment varible INSTANCE_ID is set when invoking boothooks from
multi-part input. However, previously that was not the case for things
run via bootcmd.
This adds cloud-init-per, which makes it easy for user in bootcmd or
boothook to do something per 'instance', 'always', or 'once'.
The functionality in cloud-init-per mostly duplicated what was in
cloud-init-run-module. That supported "modules", but it is unlikely
that it was used for anything other than "execute". So, cloud-init-per
now replaces cloud-init-run-module and provides legacy support for
the 'execute' path.
|
|
Currently cloud-init writes something like this to console output:
ec2: #############################################################
ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----
ec2: 2048 78:ae:f3:91:04:6f:8d:ee:ef:e1:2d:72:83:6a:d0:82 root@h (RSA)
ec2: 1024 d3:b6:32:64:22:d4:43:05:f9:25:b4:f3:65:4e:e2:51 root@h (DSA)
ec2: -----END SSH HOST KEY FINGERPRINTS-----
ec2: #############################################################
the key fingerprints are useful for humans to read, but not so useful
for machines, as you cannot populate a KnownHostsFile (~/.ssh/known_hosts)
from the data there.
This change adds output like:
-----BEGIN SSH HOST KEY KEYS-----
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdH......STI= root@h
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYRIQe6m......tWF3 root@h
-----END SSH HOST KEY KEYS-----
Those lines can easily be grabbed and appended to a known_hosts file.
LP: #893400
|
|
The default management of /etc/hosts in 0.6.2 (Ubuntu 11.10)
was problematic for a couple different uses, and represented a change
in what was present in previous releases.
This changes the default behavior back to the way it was in 11.04/0.6.1.
It makes 'manage_etc_hosts' in cloud-config more than just a boolean.
It can now have 3 values:
* False (default): do not update /etc/hosts ever
* "localhost": manage /etc/hosts' 127.0.1.1 entry (the way it was done
in 11.10/0.6.2)
* True (or "template"): manage /etc/hosts via template file
This addresses bugs
* LP: #890501
* LP: #871966
LP: #890501, #871966
|
|
the cloud-init programs are never intended to run interactively.
Some programs were being run via subprocess, and would notice that their
input was attached to a terminal (/dev/console). As a result, they
they would try to prompt the user for input (apt-add-repository)
This change simply re-opens standard input as /dev/null so any
subprocesses will not end up blocking on input.
LP: #903993
|
|
|
|
This adds support for configuration of a mirror by looking
for dns names like 'ubuntu-mirror', and setting a
'apt_mirror_search' configuration variable to find the first
mirror in the list.
Also, allows configuration of an apt proxy via 'apt_proxy'
in cloud-config.
LP: #897688
|
|
Thanks: Garrett Holmstrom
LP: #883367
|
|
LP: #883367
|
|
LP: #883286
|
|
This imports the systemd config files that Garrett Holmstrom added to
fedora. Its not essential that thay be here, rather than just maintained
as distribution delta, but there exists upstart files here.
taken from
git://pkgs.fedoraproject.org/cloud-init.git
commit 87f33190f43d2b26cced4597e7298835024466c2
Author: Garrett Holmstrom <gholms@fedoraproject.org>
Patch2: cloud-init-0.6.2-systemd.patch
|
|
|
|
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
|
|
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
|
|
|
|
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.
|
|
|
|
|
|
In the case where a seedfrom value was given on the command line or in the
config file, we were timing out in 2 seconds on the connection. That timeout
was put in place to support "probing" for sources, but seedfrom is explictly
given.
So, in that case, do a urllib.open without a timeout value. Looking at source
code, default timeout is 'socket._GLOBAL_DEFAULT_TIMEOUT', but rather than
importing that and using it, I will call without a timeout value.
LP: #812646
|
|
it is expected / understood that mknod would fail inside an lxc container.
So, if thats the case, just log a debug message saying so.
LP: #800856
|
|
|