# change this to test different disk counts. 1 and > 1 should be the only
# important things to test.
-disk_count=2
+disk_count=1
+if ! ip l show br0 &>/dev/null; then
+ cat <<'EOF'
+fai-rvm error: no bridge detected. add one to interfaces like this:
+iface eth0 inet manual
+iface br0 inet dhcp
+ bridge_ports eth0
+ bridge_stp off
+ bridge_maxwait 0
+EOF
+ exit 1
+fi
+
if [[ $script_dir == /a/bin/* ]]; then
# Copy our script elsewhere so we can develop it
# and save it at the same time it's running
BASEFILE_DIR=/tmp
fi
isopath=$BASEFILE_DIR/$iso
- isosrc=$BASEFILE_DIR/STRETCH64.tar.gz
+ isosrc=$BASEFILE_DIR/BUSTER64.tar.gz
if [[ ! -e $isopath || $(stat -c %Y $isopath) -lt $(stat -c %Y $isosrc) ]]; then
e sudo fai-cd -g $(readlink -f grub.cfg.${iso%%.*}) -f -A $isopath
fi
name=demohost
-e sudo virshrm $name ||:
+e sudo virsh destroy $name ||:
+e sudo virsh undefine $name ||:
disk_arg=()
disk_arg+=("--disk path=$f")
if $new_disk || [[ ! -e $f ]]; then
sudo rm -f $f
+ # https://btrfs.wiki.kernel.org/index.php/FAQ
+ sudo touch $f
+ chattr +C $f
e sudo qemu-img create -o preallocation=metadata -f qcow2 $f 50G
fi
done
fi
# docker makes forward default to drop, which blocks the vm pxe on flidas. easiest solution:
-s iptables -P FORWARD ACCEPT
+e sudo iptables -P FORWARD ACCEPT
# --cpu host: this causes mkfs.btrfs to fail with a stack trace which began
# something like:
# ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad $reboot_arg \
# --graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
+cpus=1
+if (( $(nproc) > 2 )); then
+ cpus=2
+fi
-e sudo virt-install --rng /dev/urandom --os-variant $variant -n $name $boot_arg -r 2048 --vcpus 1 \
+e sudo systemctl start libvirtd
+e sudo virt-install --rng /dev/urandom --os-variant $variant -n $name $boot_arg -r 2048 --vcpus $cpus \
${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad $reboot_arg \
--graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
fg
fi
-sleep 30
+sleep 90
while ! timeout -s 9 10 ssh -oBatchMode=yes root@$name /bin/true; do
e sleep 5
done
-unset err-cleanup
+unset -f err-cleanup
e ./pxe-server $dhcp_arg
if is_arch_revm; then
./arch-init-remote $name