From 4487d80e2545dadc44c94d80efc17667d7cc91b0 Mon Sep 17 00:00:00 2001 From: Charles Plessy Date: Fri, 18 Jan 2013 21:24:06 +0900 Subject: [PATCH] =?utf8?q?=C3=89bauche.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../installeur-debian-dans-un-nuage-2.mdwn" | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 "Debian/debi\303\242neries/installeur-debian-dans-un-nuage-2.mdwn" diff --git "a/Debian/debi\303\242neries/installeur-debian-dans-un-nuage-2.mdwn" "b/Debian/debi\303\242neries/installeur-debian-dans-un-nuage-2.mdwn" new file mode 100644 index 00000000..d2eb38f0 --- /dev/null +++ "b/Debian/debi\303\242neries/installeur-debian-dans-un-nuage-2.mdwn" @@ -0,0 +1,119 @@ +[[!meta date="Fri, 18 Jan 2013 21:03:36 +0900"]] +[[!meta updated="Fri, 18 Jan 2013 21:03:36 +0900"]] +[[!tag Debian]] + +[[!meta title="L'installeur Debian dans un nuage, part 2."]] + +J'arrive enfin à créer une [[image machine de l'installeur +Debian|installeur-debian-dans-un-nuage]] automatiquement, sans qu'aucune clé ou +mot de passe ne transite dans le réseau ni sur le Nuage. + +Pour ce faire, je démarre une micro-instance avec un volume supplémentaire, et +je lui passe un script via [[cloud-init]], qui va télécharger l'installeur +Debian sur ce volume et éteindre la micro instance. Ensuite, j'enregistre ce +volume comme image machine. + +Les images machines de l'Installeur créées ainsi peuvent être démarrées +avec une pré-configuration pour installer Debian sur un autre volume. Je +bute encore sur cette pré-configuration. Plus de détails dans un +prochain article. + +En attandant, voici les commandes que j'utilise. Mettez-les ensembles et vous +obtiendrez un script qui n'est pas du grand art, mais qui marche. + +Depuis l'ordinateur local, lancer une instance sur le Nuage. Pour le moment il +faut utiliser une image Ubuntu en attandant que cloud-init soit installé par +défaut sur les images Debian (http://bugs.debian.org/696595). + +
+HELPER_AMI=ami-7609bb77 # Ubuntu 12.04 LTS Precise amd64 EBS in Tokyo
+
+ +On passe le script debigen-install-installer-cloud (voir plus bas). L'instance +démarre avec un volume supplémentaire de 1 GiB qui persistera après +l'extinction de l'instance. + +
+HELPER_INSTANCE=$( euca-run-instances \
+        --instance-initiated-shutdown-behavior terminate \
+        --instance-type t1.micro \
+        --block-device-mapping /dev/sdb=:1:false \
+        --user-data-file debigen-install-installer-cloud \
+        $HELPER_AMI |
+        tee /dev/stderr | grep INSTANCE | awk '{print $2}')
+
+ +On attend que le démarrage soit fini + +
+while [ ! $(euca-describe-instances $HELPER_INSTANCE | grep INSTANCE | cut -f 6 | tee /dev/stderr) = "running" ]; do sleep 30; done
+
+ +On récupère le numéro du volume persistant. + +
+TARGET_VOLUME=$( euca-describe-volumes |
+        grep $HELPER_INSTANCE | grep '/dev/sdb' |
+        tee /dev/stderr | awk '{print $2}')
+
+ +On attend que le script termine l'instance. + +
+while [ ! $(euca-describe-instances $HELPER_INSTANCE | grep INSTANCE | cut -f 6 | tee /dev/stderr) = "terminated" ]; do sleep 30; done
+
+ +Et enfin, on enregistre une images à partir d'un instantanné du volume. +(Notez que `PV_KERNEL=aki-44992845` est pour la région de Tôkyô. + +
+# PV-Grub kernels to boot the installer (hd0)
+# See from http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html
+PV_KERNEL=aki-44992845
+
+TARGET_SNAPSHOT=$( euca-create-snapshot $TARGET_VOLUME |
+        tee /dev/stderr | awk '{print $2}')
+
+while euca-describe-snapshots $TARGET_SNAPSHOT | grep -q pending ; do sleep 30 ; done
+
+INSTALLER_IMAGE=$( euca-register \
+        --name test_di \
+        --description test_of_debian_installer \
+        --snapshot $TARGET_SNAPSHOT \
+        --kernel $PV_KERNEL \
+        --architecture x86_64 |
+        tee /dev/stderr | awk '{print $2}')
+
+ +Voici le script appelé debigen-install-installer-cloud, lancé plus haut. + +
+#!/bin/sh -ex
+
+mke2fs -L debian-installer /dev/xvdb -F
+mount LABEL=debian-installer /mnt/
+
+cd /mnt
+
+ARCH=amd64
+DIST=squeeze
+DI_VERSION=20110106+squeeze4+b2
+MIRROR=jp
+BASEURL=http://ftp.$MIRROR.debian.org/debian/dists/$DIST/main/installer-$ARCH/$DI_VERSION/images/netboot/xen
+
+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 /linux root=LABEL=debian-installer ro console=hvc0 auto=true priority=critical url=http://169.254.169.254/latest/user-data DEBIAN_FRONTEND=text
+initrd /initrd.gz
+__END__
+
+halt
+
-- 2.47.3