X-Git-Url: https://git.madduck.net/code/vinst.git/blobdiff_plain/d97649fb0bfe21f6cc37571d47ae447083f7bb94..3f34df1b2d831f855b18496f264ca233b45ca588:/vinst diff --git a/vinst b/vinst index 73d50c4..02fcef1 100755 --- a/vinst +++ b/vinst @@ -9,6 +9,8 @@ STORAGE_POOL=default QEMU_URI=qemu:///system SUITE=wheezy CONSOLE='console=tty0 console=ttyS0,115200n8' +DEBUG=0 +WIPE=0 while [ -n "$1" ]; do case "$1" in @@ -67,6 +69,21 @@ while [ -n "$1" ]; do fi DISK="$1" ;; + (-a|--arch) + shift + if [ -z "$1" ]; then + echo >&2 'E: --arch/-a needs size argument' + exit 1 + fi + ARCH="$1" + ;; + (--debug) + DEBUG=1 + set -vx + ;; + (--wipe) + WIPE=1 + ;; esac shift done @@ -107,10 +124,16 @@ else BRIDGE=virt-br fi +if [ -z "$ARCH" ]; then + ARCH=$(dpkg --print-architecture) +fi + cat >&2 <<_eof hostname: $HOSTNAME + arch: $ARCH ram: $RAM MiB disk: $DISK GiB + wipe: $WIPE console: $CONSOLE net bridge: $BRIDGE _eof @@ -127,12 +150,23 @@ else _eof fi -exit 0 +echo >&2 + +virsh --connect=$QEMU_URI vol-create-as $STORAGE_POOL virt-$HOSTNAME ${DISK}G +if [ $WIPE = 1 ]; then + virsh --connect=$QEMU_URI vol-wipe --pool $STORAGE_POOL --algorithm zero virt-$HOSTNAME +fi -exec virt-install --connect=$QEMU_URI \ +if [ $DEBUG = 1 ]; then + DEBUGFLAG=--debug + extra_args="$extra_args DEBCONF_DEBUG=5" +fi + +virt-install --connect=$QEMU_URI \ + ${DEBUGFLAG:-} \ -n $HOSTNAME \ -r $RAM \ - --disk pool=default,size=$SIZE \ + --disk vol=$STORAGE_POOL/virt-$HOSTNAME \ -w bridge=$BRIDGE \ --graphics=vnc \ --serial=pty \ @@ -141,6 +175,9 @@ exec virt-install --connect=$QEMU_URI \ -l $BASEDIR/installer-amd64 \ --initrd-inject=$BASEDIR/preseed/$SUITE/preseed.cfg \ --initrd-inject=$tmpdir/commands.tar \ + --noautoconsole --autostart \ --extra-args="$extra_args" \ - --autostart \ "$@" + +virsh --connect=$QEMU_URI console $HOSTNAME +virsh --connect=$QEMU_URI "start $HOSTNAME; console $HOSTNAME"