From fc90643563a332c9d37fda9b58007938b6e61a31 Mon Sep 17 00:00:00 2001 From: yves Date: Fri, 30 Dec 2011 03:23:32 +0100 Subject: adpted create script to new executor --- mountDiskSetupVserver.py | 90 +++++++++++++++--------------------------------- 1 file changed, 28 insertions(+), 62 deletions(-) diff --git a/mountDiskSetupVserver.py b/mountDiskSetupVserver.py index 2d28fb5..c94cbfc 100755 --- a/mountDiskSetupVserver.py +++ b/mountDiskSetupVserver.py @@ -29,11 +29,7 @@ elif len(args) > 2: vmName = parseVmName(args[0]) ip, ipLastBlock = parseIp(args[1]) iscsiLunId = 'iqn.' + iscsiDate + '.de.spline:' + vmName -vmConfigDir = '/tmp/etc/vservers/' + vmName - -pl = ProgressLogger(10) - -lf = openLogFile(sys.argv[0] + "-" + vmName) +vmConfigDir = '/etc/vservers/' + vmName cmds = [ [ 'iscsiadm', '-m', 'discovery', '-t', 'st', '-p', iscsiTargetIp ], @@ -55,69 +51,39 @@ cmds = [ [ 'vserver', vmName, 'start' ] ] -pl.start('discover iscsi luns') -execute(cmds[0],lf) -pl.done() - -pl.start('log in to iscsi lun ' + iscsiTargetIp) -execute(cmds[1],lf) -pl.done() - -pl.start('create vserver folder') -execute(cmds[2],lf) -pl.done() - -pl.start('create vserver ( this may take some time)') -execute(cmds[3],lf) -pl.done() - -def writeFile(path,content): - try: - fd = open(path,'w') - fd.write(content) - fd.close() - except IOError: - logError('Unable to write file: ' + path) - sys.exit(2) - -pl.start('configure iscsi lun for vm') -# iscsi meta-daten im vserver-etc verzeichnis hinzufuegen -os.mkdir(vmConfigDir + '/iscsi') -writeFile(vmConfigDir + '/iscsi/portal',iscsiTargetIp + '\n') -writeFile(vmConfigDir + '/iscsi/target',iscsiLunId + '\n') -pl.done() - -pl.start('configure fstab') +exe = Executor([ + ExecRecepie('discover iscsi luns', cmds[0]), + ExecRecepie('log in to iscsi lun ' + iscsiTargetIp, cmds[1]), + ExecRecepie('create vserver folder', cmds[2]), + ExecRecepie('create vserver ( this may take some time)', cmds[3]), + + # iscsi meta-daten im vserver-etc verzeichnis hinzufuegen + ConfigRecepie('configure iscsi lun for vm', + vmConfigDir + '/iscsi', + { + 'portal' : iscsiTargetIp + '\n', + 'target' : iscsiLunId + '\n' + }), + FstabRecepie('configure fstab', vmConfigDir + '/fstab','dev/disk/by-label/ ' + vmName), # die dem vserver zugehörige disk erstmal unmounten und dann in die fstab des vservers einfuegen, damit # sie beim starten benutzt wird -with open(vmConfigDir + '/fstab', 'a') as fstab: - fstab.write('/dev/disk/by-label/ ' + vmName + ' / ext4 defaults,relatime 0 1\n') - fstab.close() -pl.done() - - -pl.start('configure ipv6 address') -# 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 -os.mkdir(vmConfigDir + '/interfaces/1') -writeFile(vmConfigDir + '/interfaces/1/prefix', '64\n') -writeFile(vmConfigDir + '/interfaces/1/dev', 'eth0\n') -pl.done() - -pl.start('configure marks') + ConfigRecepie('configure ipv6 address', + vmConfigDir + '/interfaces/1', + { + 'prefix': '64\n', + 'dev': 'eth0\n' + }), # 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 -os.mkdir(vmConfigDir + '/apps/init') -writeFile(vmConfigDir + '/apps/init/mark', 'pang\ndebian\nauto-update\n') -pl.done() + ConfigRecepie('configure marks', + vmConfigDir + '/apps/init', + { 'mark' : 'pang\ndebian\nauto-update\n'}), -pl.start('umount disk') -execute(cmds[4],lf) -pl.done() + ExecRecepie('umount disk', cmds[4]), + ExecRecepie('start vserver', cmds[5]) +]) -pl.start('start vserver') -execute(cmds[5],lf) -pl.done() +exe.do() logInfo("your vserver is up and running!") logInfo("you might enter it by: vserver " + vmName + ' enter') -- cgit v1.2.3-1-g7c22