X-Git-Url: https://git.madduck.net/code/vinst.git/blobdiff_plain/7b0c46474dc0716767b89901a33a85efbb2dc8cd..e87cba64135b5dadcdaa6f87d33c24bc1d1141ae:/vinst?ds=sidebyside diff --git a/vinst b/vinst index 66b70aa..6ca0f76 100755 --- a/vinst +++ b/vinst @@ -35,6 +35,14 @@ while [ -n "$1" ]; do esac IPADDRESS="$1" ;; + (-d|--dns) + shift + if [ -z "$1" ]; then + echo >&2 'E: --dns/-d needs IP address' + exit 1 + fi + NAMESERVER="$1" + ;; (-g|--gateway) shift if [ -z "$1" ]; then @@ -59,6 +67,14 @@ 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" + ;; esac shift done @@ -92,15 +108,24 @@ if [ -n "$IPADDRESS" ]; then netcfg/get_gateway=$GATEWAY \ netcfg/get_nameservers=$NAMESERVER" + BRIDGE=wan + else extra_args="$extra_args netcfg/disable_dhcp=false" + 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 console: $CONSOLE +net bridge: $BRIDGE _eof if [ -n "$IPADDRESS" ]; then cat >&2 <<_eof @@ -115,13 +140,16 @@ else _eof fi -exit 0 +echo >&2 + +set -v +virsh --connect=$QEMU_URI vol-create-as $STORAGE_POOL virt-$HOSTNAME ${DISK}G -exec virt-install --connect=$QEMU_URI \ +virt-install --connect=$QEMU_URI \ -n $HOSTNAME \ -r $RAM \ - --disk pool=default,size=$SIZE \ - -w bridge=virt-br \ + --disk vol=$STORAGE_POOL/virt-$HOSTNAME \ + -w bridge=$BRIDGE \ --graphics=vnc \ --serial=pty \ --watchdog i6300esb,action=reset \ @@ -129,6 +157,9 @@ exec virt-install --connect=$QEMU_URI \ -l $BASEDIR/installer-amd64 \ --initrd-inject=$BASEDIR/preseed/$SUITE/preseed.cfg \ --initrd-inject=$tmpdir/commands.tar \ + --prompt --noautoconsole --autostart \ --extra-args="$extra_args" \ - --autostart \ "$@" + +virsh --connect=$QEMU_URI console $HOSTNAME +virsh --connect=$QEMU_URI "start $HOSTNAME; console $HOSTNAME"