diff options
-rwxr-xr-x | mountDiskSetupVserver.py | 78 |
1 files changed, 28 insertions, 50 deletions
diff --git a/mountDiskSetupVserver.py b/mountDiskSetupVserver.py index e046298..bda8371 100755 --- a/mountDiskSetupVserver.py +++ b/mountDiskSetupVserver.py @@ -3,11 +3,12 @@ import optparse from shared import * # vars -volumeGroupName = 'scsiRaid' -defaultDiskSize = '3G' +iscsiTargetIp='10.0.0.1' +iscsiDate='2011-04' +defaultImage='/root/vserver-template-v2.tar.bz2' # configure known options -usage = "usage: %prog VMNAME [options]" +usage = "usage: %prog VMNAME IP [options]" parser = optparse.OptionParser(usage=usage) parser.add_option("-s", "--size", dest="size", default=defaultDiskSize, help="SIZE of vm root disk", metavar="SIZE") @@ -27,42 +28,35 @@ elif len(args) > 1: sys.exit(2) vmName = parseVmName(args[0]) -diskSize, diskSizeUnit = parseDiskSize(options.size) - +ip, ipLastBlock = parseIp(args[1]) cmds = [ + [ 'iscsiadm', '-m', 'discovery', '-t', 'st', '-p', iscsiTargetIp ], +# maybe i schould grep if, the device was in the output +# 10.0.0.1:3260,1 iqn.2011-04.de.spline:<name> + [ 'iscsiadm', '-m', 'node', '-T', 'iqn.' + iscsiDate + + '.de.spline:' + vmName, '-p', iscsiTargetIp, '--login' ], + [ 'mkdir', '/vservers/' + vmName ], + [ 'mount', '/dev/disk/by-label/' + vmName, '/vservers/' + vmName +], + [ 'vserver', vmName, 'build', + '-m', 'template', + '--interface', 'eth0:' + ip + '/25', + '--initstyle', 'sysv', + '--context', str(ipLastBlock) + '--hostname', vmName, + '--', + '--template', defaultImage, + '-d', 'debian' ] +] -$ iscsiadm -m discovery -t st -p 10.0.0.1 -'''10.0.0.1:3260,1 iqn.2011-04.de.spline:<name> -130.133.110.96:3260,1 iqn.2011-04.de.spline:<name> -[...] -''' - -$ iscsiadm -m node -T iqn.<YYYY>-<MM>.de.spline:<name> -p 10.0.0.1 --login -'''Logging in to [iface: default, target: iqn.<YYYY>-<MM>.de.spline:<name>, portal: 10.0.0.1,3260] -Login to [iface: default, target: iqn.<YYYY>-<MM>.de.spline:<name>, portal: 10.0.0.1,3260]: successfull -''' - -$ mkdir /vservers/<name> -$ mount /dev/disk/by-label/<name> /vservers/<name>/ - -# auf beep in /etc/bind/dns-sources/ eine neue <IP> aussuchen und einen dns-eintrag hinzufuegen -# README im genannten Ordner dazu lesen! -# diese IP ist gleichzeitig der vserver-context -# vserver skelett mit den vserver-utils installieren -# als quelle wird dabei nicht debootstrap, sondern ein debian-squeeze-template genommen -# das template liegt im homeverzeichnis vom root -$ cd -$ vserver <name> build -m template --interface eth0:130.133.110.<IP>/25 --initstyle sysv --context <letzterBlockDerIP> --hostname <name> -- --template vserver-template-v2.tar.bz2 -d debian -# etwas geduld, gibt erstmal keinen output # iscsi meta-daten im vserver-etc verzeichnis hinzufuegen $ mkdir /etc/vservers/<name>/iscsi/ $ echo "10.0.0.1" > /etc/vservers/<name>/iscsi/portal $ echo "iqn.<YYYY>-<MM>.de.spline:<name>" > /etc/vservers/<name>/iscsi/target # ipv6 adresse muss noch manuell hinzugefuegt werden, die ipv4 wurde durch --interface beim vserver build erstellt -# vermutlich ist das eine dmz maschine, daher der prefix BABE +# vermutlich ist das eine dmz maschine, daher der prefix BABE $ mkdir /etc/vservers/<name>/interfaces/1 $ echo "2001:6f8:1c3c:babe::<IP>:1" > /etc/vservers/<name>/interfaces/1/ip $ echo "64" > /etc/vservers/<name>/interfaces/1/prefix @@ -71,35 +65,19 @@ $ echo "eth0" > /etc/vservers/<name>/interfaces/1/dev # neue (2011-04) vserver-utils mit "mark" benutzen, damit zB automatisch distributions-spezifische updates gefahren # werden können - falls das nicht gewuenschst ist, koennen 2. und 3. übersprungen werden $ cd /etc/vservers/<name>/apps/init -$ echo "pang" > mark +$ echo "pang" > mark $ echo "debian" >> mark $ echo "auto-update" >> mark # die dem vserver zugehörige disk erstmal unmounten und dann in die fstab des vservers einfuegen, damit # sie beim starten benutzt wird -$ umount /vservers/<name>/ -""" -/dev/disk/by-label/<name> / ext4 defaults,relatime 0 1 -none /proc proc defaults 0 0 -none /tmp tmpfs size=16m,mode=1777 0 0 -none /dev/pts devpts gid=5,mode=620 0 0 -""" -# vserver starten und gluecklich sein -$ vserver <name> start -"""WARNING: Active session for iscsi disk 'iqn.2011-04.de.spline:vm-dns0' found: Skipping login! -e2fsck 1.41.12 (17-May-2010) -vm-dns0: clean, 12211/196608 files, 135040/786432 blocks -Using makefile-style concurrent boot in runlevel 3. -Starting enhanced syslogd: rsyslogd. -""" - ["lvcreate", "-n", vmName, "-L", str(diskSize) + str(diskSizeUnit)], - ["mkfs.ext4", "/dev/" + volumeGroupName + "/" + vmName, "-l",vmName], - ["addIscsiDisk", vmName] -] + [ 'umount', '/vservers/' + vmName ] + [ 'vserver', vmName, 'start' ] execPlan = ExecutionPlan(cmds,vmName) execPlan.execute_all() logInfo("your vserver is up and running!") -sys.exit(0) +logInfo("you might enter it by: vserver " + vmName + ' enter') +sys.exit(0 |