Cela fait longtemps que je voudrais préparer une image virtuelle pure Debian pour le nuage élastique de calcul de chez Amazon, qui contiendrait les outils de bio-informatique que nous empaquetons au sein de Debian Med. La plupart des méthodes discutées dans le groupe ec2debian utilisent debootstrap et terminent la préparation avec des scripts externes. Étant donné que les images machine Amazon peuvent désormais démarrer avec leur noyau d'origine, j'explore l'utilisation directe de l'installeur Debian, pour mettre en place un système vierge sur un bloc élastique de stockage.
L'installeur Debian peut être démarré par GRUB et
pré-configuré via un fichier téléchargé au démarrage. Dans le nuage
Amazon, ce fichier peut être déposé à l'adresse
http://169.254.169.254/latest/user-data
avec les autres données
d'instance. N'ayant que peu d'expérience, j'avance lentement
sur l'automatisation de la procédure. Pour le moment, la préconfiguration
n'est pas complète, mais permet au moins de lancer la console SSH de
l'installeur. Dans l'idéal, il faudrait se connecter avec des clés, mais pour le moment j'utilise un mot de
passe. Je coince sur le partitionnement du disque dur (No root file
system is defined
).
Voici quelques détails techniques. Je fais les tests sur les instances les
moins chères, t1.micro (32 bits). J'ai téléchargé
debian-installer
sur un volume élastique de 1 Go que j'ai formatté
en ext2. Ne sachant pas si son nom de périphérique sera stable
(/dev/sda1
ou /dev/xvda1
), j'y ai collé une
étiquette, comme j'ai vu le faire dans les machines virtuelles
Ubuntu.
ARCH=i386 DIST=squeeze DI_VERSION=20110106+squeeze3 MIRROR=jp BASEURL=http://ftp.$MIRROR.debian.org/debian/dists/$DIST/main/installer-$ARCH/$DI_VERSION/images/netboot/xen mke2fs -L debian-installer /dev/sdb -F mount LABEL=debian-installer /mnt/ && cd /mnt/ wget $BASEURL/initrd.gz $BASEURL/vmlinuz mkdir -p boot/grub cat > boot/grub/menu.lst <<__END__ default 0 timeout 3 title Debian Installer ($DI_VERSION $ARCH) root (hd0) kernel /vmlinuz root=LABEL=debian-installer ro console=hvc0 auto=true priority=critical url=http://169.254.169.254/latest/user-data initrd /initrd.gz __END__
Un instantané de ce volume peut ensuite être enregistré comme image machine. Le noyau à utiliser dépendra de si le système a été installé sur le volume entier ou une partition. Debian distribue des outils pour toutes ces opérations, comme euca2ools.