Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
The sem_and_run and such needs some work, donesn't make a lot of sense
for "always".
|
|
If a part of a multipart file is 'text/part-handler' then it is
expected to be python code that implements 2 methods
- list_types()
list the types that this part-handler supports, return
a list. ie: return(['text/plain'])
- handle_parts(data,ctype,filename,payload)
this method will be called:
once, when loaded, with ctype == '__begin__'
once per part
once, at the end, with ctype == '__end__'
- ctype is the content type ('text/plain')
- filename is the filename portion of the mime data
- payload is the content of the part
- data is currently the cloud object, but this could change
|
|
Also, move swap to use this format for specifying mounts. That way
the user can turn off swap if they want with:
| mounts:
| - [ swap ]
Other change wrapped in here is to have DataSourceEc2 read plain text
(evalable) text for its metadata rather than pickl. This is really for
debuging anyway, so any speed difference is not important.
|
|
|
|
|
|
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
----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
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
|
|
|
|
adding cat-cloud-config.conf, a debug file that just cats the config
|
|
cloud-init-run-module handles some boilerplate code for running
items on a 'frequency'. It has the following usefulness
- a config module can be put into ec2init dir and implement a 'run'
method that takes a list of arguments and the path to a config file
- it handles invoking module.run() only at a given frequency
This is similar to karmic's ec2init's "run_once_ever" or run_once_per_ami
execute.py is an example module that executes the arguments given to it
An example usage in an upstart job would be with a 'exec' line like:
exec cloud-init-run-module once_per_ami clean-core execute rm /var/run/core
The above would then run the command 'rm /var/run/core' only once
|
|
|
|
|
|
|
|
|
|
This commit merges
lp:~soren/ec2-init/0.5 at rev 67
and lp:ubuntu/lucid at 0.4.999-0ubuntu8
|
|
|
|
Handle undefined config values gracefully.
|
|
is possibly not even needed there)
Fix a bit of fallout due to code shuffling between EC2Init, ec2-set-apt-sources, and ec2-set-defaults.
|