Add a script to automate updating the autoinstaller guest.
[invirt/packages/invirt-autoinstaller.git] / host / usr / sbin / invirt-update-ai-guest
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