Add a script to automate updating the autoinstaller guest.
authorEvan Broder <broder@mit.edu>
Tue, 27 Jan 2009 06:36:49 +0000 (01:36 -0500)
committerEvan Broder <broder@mit.edu>
Tue, 27 Jan 2009 06:36:49 +0000 (01:36 -0500)
svn path=/trunk/packages/invirt-autoinstaller/; revision=2018

debian/changelog
host/usr/sbin/invirt-update-ai-guest [new file with mode: 0755]

index 098f5a9..cd6fcac 100644 (file)
@@ -1,3 +1,9 @@
+invirt-autoinstaller (0.0.7) unstable; urgency=low
+
+  * Add a script to update the autoinstaller disk from a host.
+
+ -- Evan Broder <broder@mit.edu>  Mon, 26 Jan 2009 19:47:47 -0500
+
 invirt-autoinstaller (0.0.6) unstable; urgency=low
 
   * Correct for the checksumming issue in /etc/network/interfaces instead
diff --git a/host/usr/sbin/invirt-update-ai-guest b/host/usr/sbin/invirt-update-ai-guest
new file mode 100755 (executable)
index 0000000..f06b3ff
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+set -e
+
+export VG=xenvg
+export INSTALLLV=s_install_hda
+export INSTALLPATH="/dev/$VG/$INSTALLLV"
+export UPDATEPATH="/dev/$VG/update_$INSTALLLV"
+export MAPPERPATH="/dev/mapper/$VG-update_$INSTALLLV"
+export MOUNTDIRS="/dev /proc /sys"
+
+clean_up() {
+    set +e
+    
+    for i in $MOUNTDIRS; do
+        umount "/mnt/install$i"
+    done
+    
+    umount /mnt/install
+    kpartx -d "$UPDATEPATH"
+    lvchange -a y "$UPDATEPATH"
+    lvrename "$UPDATEPATH" "$INSTALLPATH"
+    exit 0
+}
+
+trap clean_up ERR
+
+lvchange -a n "$INSTALLPATH"
+lvrename "$INSTALLPATH" "$UPDATEPATH"
+lvchange -a ey "$UPDATEPATH"
+kpartx -a "$UPDATEPATH"
+
+mkdir -p /mnt/install
+mount "${MAPPERPATH}1" /mnt/install
+
+for i in $MOUNTDIRS; do
+    mount --bind $i "/mnt/install$i"
+done
+
+chroot /mnt/install apt-get update
+chroot /mnt/install apt-get dist-upgrade
+
+clean_up