Debian Med prepares a metapackage for multi-purpose image machines, containing packages for bioinformatics that can be used in command line or via scripts, and that do not depend on too many other packages.
I would like to prepare such an image for the Amazon cloud in the most secure manner, and the simplest way is to build it automatically in order to not have to clean anything at the end of the process. I tried for months so use the Debian installer, but banged my head against walls repeatedly, as it was impossible to re-partition the volume on which the installer was started. In the end, I figured out that this was not necessary.
For instance, one can start an image containing the installer on a micro instance (
-t t1.micro), with an additional volume of one gibibyte (
:false) to install Debian on, and preseed the installer via instance metadata (
-f preseed.txt) using a file prepared in advance. When the installation finishes, the instance terminates instead of stopping (
--instance-initiated-shutdown-behavior terminate), and its volumes disappear, except the one where Debian was installed (
Debian-installer in Stable is not often updated, and its size is very small. One can therefore think of releasing one machine image per zone and architecture. I did so for Tôkyô (ap-northeast-1) on amd64. It contains the kernel, its initrd, and a GRUB 1 menu for
pvgrub, that passes the following options:
console=hvc0 auto=true priority=critical url=http://169.254.169.254/latest/user-data DEBIAN_FRONTEND=text.
Two key pieces are missing in the resulting system. When the kernel is installed or updated, the GRUB 1 configuration file for
pvgrub must be refreshed. Also, the system must be able to retrieve a public SSH key provided through the instance metadata, to allow one to log in without using a predefined password. These two functions are provided by the
cloud-init package, available in Ubuntu and Fedora. I am looking for volunteers to maintain or co-maintain cloud-init in Debian.