#!/bin/rc # metatask assistant for qemu vm image management echo 'task assistant for qemu grid VMs' echo 'currently supported: add system to grid' echo 'step 1: update current /lib/ndb/local and /cfg with new system' echo 'step 2: create custom plan9.ini for new system' echo 'step 3: force filesystem snapshot to save added information' echo 'step 4: clone fossil to new system and create 9fat with new plan9.ini' echo 'new system name?' NEWSYSNAME=`{read} echo 'new system ip?' NEWSYSIP=`{read} echo 'new system authdom? (you probably want this to be the same as your current and other systems)' NEWAUTHDOM=`{read} echo 'new system auth server? (often the same as system name for standalone systems)' NEWAUTH=`{read} echo 'new system venti dialstring? leave blank for tcp!127.0.0.1!17034' NEWVENTI=`{read} if (~ $NEWVENTI '') { NEWVENTI = 'tcp!127.0.0.1!17034' } echo 'configuration to clone? (? to see a list of available)' NEWCFG=`{read} if (~ $NEWCFG '?'){ ls /cfg echo 'configuration to clone?' NEWCFG=`{read} } echo 'adding new system to grid and forcing filesystem snapshot.' touch /tmp/configfiles/newsysscript echo 5 >/tmp/configfiles/newsysscript echo $NEWCFG >>/tmp/configfiles/newsysscript echo $NEWSYSNAME >>/tmp/configfiles/newsysscript echo 4 >>/tmp/configfiles/newsysscript echo 4 >>/tmp/configfiles/newsysscript echo $NEWSYSIP >>/tmp/configfiles/newsysscript echo $NEWSYSNAME >>/tmp/configfiles/newsysscript echo $NEWAUTHDOM >>/tmp/configfiles/newsysscript echo $NEWAUTH >>/tmp/configfiles/newsysscript echo s >>/tmp/configfiles/newsysscript echo q >>/tmp/configfiles/newsysscript echo 1 >>/tmp/configfiles/newsysscript echo 1 >>/tmp/configfiles/newsysscript echo 1 >>/tmp/configfiles/newsysscript echo $NEWSYSNAME >>/tmp/configfiles/newsysscript echo 3 >>/tmp/configfiles/newsysscript echo $NEWVENTI >>/tmp/configfiles/newsysscript echo q >>/tmp/configfiles/newsysscript echo q >>/tmp/configfiles/newsysscript confighelper [2=1] >/dev/null cp /tmp/configfiles/plan9.ini.tmp /tmp/configfiles/plan9.ini echo 'fsys main snap -a' >>/srv/fscons echo 'filesystem snapshot started, please wait for it to complete to continue' echo 'yeah, this script should really help you with knowing how long to wait, sorry.' echo 'press enter to continue when ready (tip: check fscons for a vac: score to verify completeion)' continue=`{read} fossil/last /dev/sdC0/fossil >/tmp/configfiles/fossillast 9fat: disk/mbr -m /386/mbr /dev/sdC1/data disk/fdisk -baw /dev/sdC1/data disk/prep -bw -a^(9fat nvram fossil swap) /dev/sdC1/plan9 disk/format -b /386/pbslba -d -r 2 /dev/sdC1/9fat /n/9fat/9load /n/9fat/9pcf /n/9fat/9pccpuf /n/9fat/9gcpuf /tmp/configfiles/plan9.ini cp /dev/sdC0/nvram /dev/sdC1/nvram OLDFOSSIL=`{cat /tmp/configfiles/fossillast |awk -F : '{print $2}'} fossil/flfmt -v $OLDFOSSIL /dev/sdC1/fossil fossil/conf /dev/sdC0/fossil | fossil/conf -w /dev/sdC1/fossil echo 'ok in theory /dev/sdC1/should be a new customized system and it and this system should know each other' mv /tmp/configfiles/newsysscript /tmp/configfiles/newsysdone exit