Age | Commit message (Collapse) | Author |
|
|
|
|
|
Move the writing of sources.list to CloudConfig. This way we have
access to the cloud-config user data. Then, allow the user
to specify the archive mirror using 'apt_mirror' key.
Now, if specified in cloud-config, that is used, otherwise, we
get one from the DataSource.
One other change here is adding 'apt_preserve_sources_list'. If set to
true, then overwriting of the sources.list with the selected mirror
will not be done.
|
|
|
|
|
|
This includes support for
- signing key import via 'keyid' and 'keyserver' or 'key'
- ppa:* support (provided by 'add-apt-repository')
now there is a dependency on python-software-properties
|
|
Experimentation indicates that:
a.) sshd will start without ssh_host_keys in place
b.) sshd does not need to be restarted to read new keys written there
any new ssh connection will use new keys
see LP: #512377 for example of tests that found the above.
With changes to ec2-automated-builds under 512377, the keys will not exist in
the image, so the unlink will be generally not needed. The ssh server may
start up before this code runs, however it will have no keys availalble until
this writes or generates it.
|
|
|
|
|
|
|
|
|
|
----
#cloud-config
apt_update: true
ssh_keys:
rsa_private: |
-----BEGIN RSA PRIVATE KEY-----
MIIBxwIBAAJhAKD0YSHy73nUgysO13XsJmd4fHiFyQ+00R7VVu2iV9Qcon2LZS/x
...
REPPOyrAspdeOAV+6VKRavstea7+2DZmSUgE
-----END RSA PRIVATE KEY-----
rsa_public: ssh-rsa AAAAB3NzaC1yc2E...18QJvWPocKJtlsDNi3 smoser@host
dsa_private: |
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDP2HLu7pTExL89USyM0264RCyWX/CMLmukxX0Jdbm29ax8FBJT
...
8KucvUYbOEI+yv+5LW9u3z/BAoGBAI0q6JP+JvJmwZFaeCMMVxXUbqiSko/P1lsa
-----END DSA PRIVATE KEY-----
dsa_public: ssh-dss AAAAB3NzaC1kc3M...ybngIy66PMEoQ= smoser@host
----
|
|
|
|
|
|
|
|
|
|
|
|
LP: #510773
|
|
|
|
|
|
|
|
new preferred config file /etc/cloud/cloud.cfg.
cloud.cfg is read, its values are overridden by the cloud-config data
from user data
|
|
This fixes LP: #506599 , LP: #507070 .
Also, here, we move config parsing out of the EC2Init class.
Instead the parsing of /etc/ec2-init/ec2-init.cfg is now done in the
CloudConfig class, and prepended to the cloud-config that comes in
from user data. This means that values in user data will over-ride
the settings in /etc/ec2-init.
Still TODO is support reading the public and private key files from
the cloud-config
|
|
|
|
|
|
LP: #506332
|
|
At this point, the following should be functional:
cloud-init-cfg apt-update-upgrade
|
|
|
|
For user data that is not a mime message, we were not applying the
starts with rules. In fact, they were not getting applied at all.
Other fix here is to have the 'main' function decompress input
|
|
1. arguments to run-parts came before run-parts
2. explicitly state that we dont want this script to run
until cloud-config is done
|
|
|
|
run-parts didn't like scripts ending in .sh apparently.
the man page says:
If neither the --lsbsysinit option nor the --regex option is given
then the names must consist entirely of upper and lower case letters,
digits, under‐ scores, and hyphens.
We dont want to have such a restriction. so run with
--regex '.*'
Second change is making this run once-per-instance .
|
|
bzr+ssh://bazaar.launchpad.net/~zulcss/ec2-init/ec2-init-config/
|
|
|
|
|
|
There are some problems with boto 1.9, (eucatools has issues with it).
For now, I'm copying the portions of boto that i needed here to boto_utils.
This gets me the newer get_instance_metadata() without needing boto
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
supports user data as mime-multipart and handling types of
text/x-shellscript - execute at rc.local
text/cloud-config - feed to cloud config
text/upstart-job - add to /etc/init as upstart job
text/x-include-url - include urls as if they were in-line
|
|
|
|
|
|
|
|
write-mime-multipart text/x-shellscript path/filename.sh \
text/x-cloud-config my.yaml \
> my.userdata
|
|
|