Boot-time configuration for UEC/EC2 images

Registered by Scott Moser on 2009-11-09

The current method by which users can configure UEC/EC2 images is via 'user-data'. user-data that begins with #! is executed by the appropriate interpreter at S99 runlevel. This is a very effect method for customization but one that requires a fair amount of expertise to utilize.

It would be nice to provide a config file like syntax that would allow:
- what mirrors to use / what additional repos to add
- whether or not updates are installed on first boot
- ssh private keys to use (allowing user to dictate them, rather than polling for random keys from ec2-console)
- extra packages to install

Note: this differs from server-lucid-ec2-boothooks [1] as this would provide only for specific/static function. [1] would provide a hook into the images that could allow for building this blueprint.
--
[1] https://blueprints.launchpad.net/ubuntu/+spec/server-lucid-ec2-boothooks

Blueprint information

Status:
Complete
Approver:
Jos Boumans
Priority:
High
Drafter:
Scott Moser
Direction:
Approved
Assignee:
Scott Moser
Definition:
Approved
Series goal:
Accepted for lucid
Implementation:
Implemented
Milestone target:
milestone icon lucid-alpha-3
Started by
Thierry Carrez on 2010-01-11
Completed by
Steve Langasek on 2010-05-26

Sprints

Whiteboard

Secondary Engineer: mathiaz

ttx review (2009-11-27): Spec/Design doesn't mention the pregenerated SSH keys support. Otherwise looks good, could use a little more detail in implementation choices.
 | spec did not mention pregenerated ssh key support because its not "simple". where "simple" means something that a human could type. I've added it explicitly to boothooks spec
mdz review 2009-11-30: Ordinarily, things like the config syntax should be part of the spec, so that the design choices can be reviewed. I've gone ahead and approved this so that you can start work on it, but please add this to the specification document itself and request a review from Thierry when you get there.

Status:
Complete.

Work items for lucid-alpha-2:
[mathiaz] document plans for config parser syntax: DONE
[mathiaz] document plans for plugins: DONE
[mathiaz] finalize/document config syntax and how to plugin: DONE
[zulcss] config - apt-update and apt-upgrade : DONE
[zulcss] config - add repos: DONE
[zulcss] config - ssh pre-generated keys: DONE
[zulcss] config - EBS mounts: DONE
[zulcss] config - ephemeral storage RAID or mount points: DONE
[zulcss] config - runurl: DONE
[zulcss] test - Test functionality of config syntax: DONE

Work items for lucid-alpha-3:
[smoser] - hook config parser into boothooks: DONE
[smoser] - test integration with ec2-boothooks: DONE

(?)

Work Items