X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai-revm;h=87cf1cf90a01d1486be19c3d147b5738673a05e6;hb=4261ad7e021ec77e7198cf42c3576dad07f12a64;hp=5ac7fce1c6ff660c855ef8179414d6e0bdf62d8c;hpb=e8f685f09f4190d1afabf25d6d7ac2f7e5dec841;p=automated-distro-installer diff --git a/fai-revm b/fai-revm index 5ac7fce..87cf1cf 100755 --- a/fai-revm +++ b/fai-revm @@ -8,30 +8,35 @@ set -x set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR +redeploy=false +if [[ $1 == -r ]]; then + redeploy=true +fi -disk_count=1 +disk_count=2 script_dir=$(dirname $(readlink -f "$BASH_SOURCE")) if [[ $script_dir == /a/bin/* ]]; then rm -rf /a/tmp/fai2 - cp -r /a/bin/fai /a/tmp/fai2 - exec /a/tmp/fai2/fai-revm "$@" + mkdir -p /a/tmp + cp -ar /a/bin/fai /a/tmp/fai2 + exec /a/tmp/fai2/${BASH_SOURCE##*/} "$@" fi -cd $(dirname $(readlink -f "$BASH_SOURCE")) +cd $script_dir new_disk=false [[ ! $1 ]] || new_disk=true -cd $(dirname $(readlink -f "$BASH_SOURCE")) - if [[ $0 == *arch-revm ]]; then # via osinfo-query os. guessing arch is closest to latest fedora. variant=fedora22 else - ./fai-redep + if $redeploy; then + ./fai-redep + fi variant=debian8 fi @@ -39,20 +44,31 @@ name=demohost s virshrm $name ||: + disk_arg=() for ((i=1; i <= disk_count; i++)); do f=/var/lib/libvirt/images/${name}$i disk_arg+=("--disk path=$f") if $new_disk || [[ ! -e $f ]]; then - rm -f $f + s rm -f $f s qemu-img create -o preallocation=metadata -f qcow2 $f 20G fi done -s virt-install --os-variant $variant --cpu host -n $name --pxe -r 2048 --vcpus 1 \ - ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad & +if [[ $SSH_CLIENT ]]; then + console_arg=--noautoconsole +else + console_arg='&' +fi -if [[ $0 == *arch-revm ]]; then +# --cpu host: this causes mkfs.btrfs to fail with a stack trace which began +# something like: +# init_module+0x108/0x1000 [raid6_pq] +s virt-install --os-variant $variant -n $name --pxe -r 2048 --vcpus 1 \ + ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad \ + --graphics spice,listen=0.0.0.0 $console_arg + +if [[ ${0##*/} == arch-revm ]]; then sleep 80 ./arch-init-remote $name fi