Change autoinstaller host to be only arguments to sipb-database sipb-xen-autoinstaller/2.4
authorEric Price <ecprice@mit.edu>
Mon, 28 Jul 2008 07:20:22 +0000 (03:20 -0400)
committerEric Price <ecprice@mit.edu>
Mon, 28 Jul 2008 07:20:22 +0000 (03:20 -0400)
svn path=/trunk/packages/sipb-xen-autoinstaller/; revision=760

debian/changelog
debian/control.in
debian/sipb-xen-autoinstaller-host.install [deleted file]
guest/etc/init.d/rcS.sipb-xen
guest/usr/sbin/sipb-xen-install [deleted file]
host/etc/xen/autoinstall.cfg [deleted file]
host/usr/sbin/sipb-xen-install [deleted file]
host/usr/sbin/sipb-xen-lvcopy [deleted file]
host/usr/sbin/sipb-xen-make-iso [deleted file]

index 9ae3aed..abb993d 100644 (file)
@@ -1,3 +1,9 @@
+sipb-xen-autoinstaller (2.4) unstable; urgency=low
+
+  * Switch to using just sipb-database options on the host
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Mon, 28 Jul 2008 03:18:00 -0400
+
 sipb-xen-autoinstaller (2.3) unstable; urgency=low
 
   * Fix a couple bugs.
index 120a32f..2646c7a 100644 (file)
@@ -13,9 +13,3 @@ Depends: ${misc:Depends}, patch, xen-tools, busybox-static, lvm2
 Conflicts: sysvinit, upstart
 Description: SIPB Xen automatic guest-image installer system (guest)
  This is our automatic guest-image installer system.
-
-Package: sipb-xen-autoinstaller-host
-Architecture: all
-Depends: ${misc:Depends}, sipb-xen-host-master
-Description: SIPB Xen automatic guest-image installer system (host)
- This is our automatic guest-image installer system.
diff --git a/debian/sipb-xen-autoinstaller-host.install b/debian/sipb-xen-autoinstaller-host.install
deleted file mode 100644 (file)
index 260c50b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-host/* .
index d786d7d..9431cd6 100644 (file)
@@ -1,16 +1,38 @@
-#!/bin/sh
+#!/bin/bash
 for x in $(cat /proc/cmdline); do
     case $x in
-    ip=*)
-      /usr/lib/klibc/bin/ipconfig -d ${x#ip=}
-      ;;
-    noinstall)
-      exit 0
-      ;;
+       ip=*)
+       /usr/lib/klibc/bin/ipconfig -d ${x#ip=}
+       ;;
+       mirror=*)
+       MIRROR=${x#mirror=}
+       ;;
+       dist=*)
+       DIST=${x#dist=}
+       ;;
+       arch=*)
+       ARCH=${x#arch=}
+       ;;
+       imagesize=*)
+       IMAGESIZE=${x#imagesize=}
+       ;;
+       noinstall)
+       exit 0
+       ;;
     esac
 done
 mount -t tmpfs none /var/log
 mount -t tmpfs none /tmp
-sipb-xen-install
+
+
+TARGET=/dev/hda
+ARCH=${ARCH-amd64}
+IP=$(ifconfig eth0 | sed -n 's/.*inet addr:\([0-9\.]*\).*/\1/p')
+HOSTNAME=$(hostname)
+
+echo ,${IMAGESIZE}$',L,*\n,,S\n;\n;' | sfdisk -uM -H 255 -S 63 $TARGET
+
+xen-create-image --image-dev ${TARGET}1 --swap-dev ${TARGET}2 --fs ext3 --ide --arch $ARCH --dist $DIST --hostname $HOSTNAME --mirror $MIRROR --ip=$IP --netmask=255.255.0.0 --gateway=18.181.0.1 --cache=yes
+
 busybox poweroff
 exit 0
diff --git a/guest/usr/sbin/sipb-xen-install b/guest/usr/sbin/sipb-xen-install
deleted file mode 100644 (file)
index 5f467ff..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-TARGET=/dev/hda
-
-# Read in the environment variables
-# For some strange reason, . $TARGET doesn't work reliably.
-eval `grep -a -m1 -B 100 ^return$ $TARGET | grep -v return`
-
-ARCH=amd64
-
-echo ,${IMAGESIZE}$',L,*\n,,S\n;\n;' | sfdisk -uM -H 255 -S 63 $TARGET
-
-xen-create-image --image-dev ${TARGET}1 --swap-dev ${TARGET}2 --fs ext3 --ide --arch $ARCH --dist $DIST --hostname $HOSTNAME --mirror $MIRROR --ip=$IP --netmask=255.255.0.0 --gateway=18.181.0.1 --cache=yes
diff --git a/host/etc/xen/autoinstall.cfg b/host/etc/xen/autoinstall.cfg
deleted file mode 100644 (file)
index 88db3fd..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Configuration file for the Xen instance foobar, created
-# by xen-tools 3.7 on Sat Jun 21 16:24:54 2008.
-#
-
-#
-#  Kernel + memory size
-#
-#bootloader = '/usr/lib/xen-default/bin/pygrub'
-kernel      = '/boot/vmlinuz-2.6.24-19-xen'
-ramdisk     = '/boot/initrd.img-2.6.24-19-xen'
-memory      = '256'
-
-
-#
-#  Hostname
-#
-name        = 'd_foobar2'
-
-
-#
-#  Disk device(s).
-#
-disk        = [
-                  'phy:/dev/xenvg/%s_hda,hdb,r' % name,
-                  'phy:/dev/xenvg/d_%s_hda,hda,w' % target,
-              ]
-
-root = '/dev/hdb1'
-extra = 'ro noresume ip=18.181.0.216::18.181.0.1:255.255.0.0:foobar2:eth0:off'
-
-#
-#  Networking
-#
-vif         = [ 'ip=18.181.0.216,mac=00:16:3e:00:2c:ee,script=vif-bridge' ]
-
-#
-#  Behaviour
-#
-on_poweroff = 'destroy'
-on_reboot   = 'restart'
-on_crash    = 'destroy'
-
-
-
diff --git a/host/usr/sbin/sipb-xen-install b/host/usr/sbin/sipb-xen-install
deleted file mode 100644 (file)
index ad72827..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-export PATH
-
-HOSTNAME="$2"
-DIST="$3"
-MIRROR="$4"
-IMAGESIZE="$5"
-IP="$6"
-
-VOLUME=/dev/mapper/xenvg-d_${HOSTNAME}_hda
-
-cat > $VOLUME <<EOF
-HOSTNAME=$HOSTNAME
-DIST=$DIST
-MIRROR=$MIRROR
-IMAGESIZE=$IMAGESIZE
-IP=$IP
-return
-EOF
-
-xm create autoinstall.cfg target=$HOSTNAME guestip=$IP
diff --git a/host/usr/sbin/sipb-xen-lvcopy b/host/usr/sbin/sipb-xen-lvcopy
deleted file mode 100755 (executable)
index 53c5aa8..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python2.5
-
-import sys
-import os
-import shutil
-import tempfile
-import time
-from subprocess import call, check_call, Popen, PIPE
-
-# Make sure to use up fd 0 to avoid a bug in subprocess in Python <= 2.5.1
-# NB we need to do this on every Python remctl script.
-# See r53624 in Python svn.
-sys.stdin = open('/dev/null')
-
-def losetup(source, offset=0):
-  p = Popen(['sipb-xen-losetup', source, str(offset)], stdout=PIPE)
-  return p.communicate()[0].strip()
-
-def frob_copy_in_vm(target, *args):
-  '''UNUSED: maybe we'll use this someday; it does isolate the frobber.'''
-  # 1. prepare arguments volume
-  args_volume = prefix+target+'_args'
-  args_device = '/dev/xenvg/' + args_volume
-  check_call(['/sbin/lvcreate', 'xenvg', '--name', args_volume, '--size', '4K'])
-  file(args_device, 'w').write('\n'.join(args) + '\n')
-
-  # 2. invoke frobber vm
-  copier_device = '/dev/xenvg/d_wert_hda'
-  check_call(['/usr/sbin/xm', 'create', 'sipb-database',
-              'machine_name='+target,
-              'disks=' + ' '.join(['phy:'+copier_device+',hda,w',
-                                   'phy:'+target_device+',hdc,w',
-                                   'phy:'+args_device+',hdd,w'])])
-
-  # XXX should check_call(['/sbin/lvremove', '-f', 'xenvg/'+args_volume])
-
-def frob_copy(target, hostname, rootpw):
-  """target should be an LV device filename"""
-  # 1: mount filesystem
-  fs = losetup(target, 32256)
-  mntdir = tempfile.mkdtemp('', 'auto-install.frob.', '/tmp')
-  call(['mount', '-t', 'ext3', fs, mntdir])
-  # 2: do frobbing
-  call(['/usr/sbin/chroot', mntdir, '/post-copy', hostname, rootpw])
-  # 3: clean up
-  call(['umount', mntdir])
-  os.rmdir(mntdir)
-  call(['losetup', '-d', fs])
-
-def duplicate_by_vm(source, target, rootpw, nodd=False, nofrob=False):
-  if source != "ice3":
-     print "Error: can't clone that VM"
-     sys.exit(1)
-  # source, target should be machine names
-  prefix = 'd_'
-  # 1. copy (by dd) source to target
-  source_device = '/dev/xenvg/' + prefix + source + '_hda'
-  target_device = '/dev/xenvg/' + prefix + target + '_hda'
-  if not nodd:
-    check_call(['/bin/dd', 'bs=1M', 'conv=nocreat',
-                'if='+source_device, 'of='+target_device])
-  # 2. frob target
-  if not nofrob:
-    frob_copy(target_device, target, rootpw)
-
-def main(*argv):
-  subcommand = argv[1]
-  args = argv[2:]
-  os.environ['PATH'] = '/usr/sbin:/usr/bin:/sbin:/bin'
-  if subcommand == 'lvcopy':
-    kwargs = {}
-    while True:
-      if args[0].startswith('--'):
-        kwargs[args[0][2:]] = True
-        args = args[1:]
-        continue
-      if len(args) != 3:
-        print >>sys.stderr, argv[0]+': bad argument list'
-        return 2
-      break
-    duplicate_by_vm(*args, **kwargs)
-  elif subcommand == 'test':
-    pass
-  else:
-    print >>sys.stderr, argv[0]+": unknown subcommand: "+subcommand
-    return 2
-  return 0
-
-if __name__ == '__main__':
-  sys.exit(main(*sys.argv))
diff --git a/host/usr/sbin/sipb-xen-make-iso b/host/usr/sbin/sipb-xen-make-iso
deleted file mode 100755 (executable)
index 9b959cb..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import os
-import shutil
-import tempfile
-from subprocess import call
-
-data_dir = '/srv/guest-installer'
-
-def make_debian_cd(name, tmptree, passhashfile):
-  basetree = os.path.join(data_dir, name)
-  cdtree = os.path.join(tmptree, 'cdrom')
-  shutil.copytree(os.path.join(basetree, 'cdrom'), cdtree, symlinks=True)
-  new_preseed = file(os.path.join(cdtree, 'preseed.cfg'), 'w')
-  old_preseed = file(os.path.join(basetree, 'preseed.cfg'))
-  new_preseed.write(old_preseed.read())
-  passhash = file(passhashfile).read()
-  new_preseed.write('d-i passwd/root-password-crypted password '+passhash+'\n')
-  new_preseed.close()
-  output_iso = os.path.join(tmptree, 'install.iso')
-  call('''mkisofs -r -V "SIPB-Xen_Custom_Install_CD" -cache-inodes -J -l
-           -b isolinux/isolinux.bin -c isolinux/boot.cat
-           -no-emul-boot -boot-load-size 4 -boot-info-table'''.split()
-       + ['-o', output_iso, cdtree])
-  return output_iso
-
-if __name__ == '__main__':
-  print make_debian_cd(*sys.argv[1:])