feat(scripts): Add a script to easily launch a vm with port forwarding

This commit is contained in:
sinavir 2023-10-03 01:07:18 +02:00 committed by thubrecht
parent bae1d02761
commit 3124465950
2 changed files with 40 additions and 1 deletions

View file

@ -6,7 +6,8 @@ let
bash bash
colmena colmena
coreutils coreutils
git; git
jq;
}; };
mkShellScript = name: (pkgs.substituteAll ({ mkShellScript = name: (pkgs.substituteAll ({
@ -22,6 +23,7 @@ let
scripts = [ scripts = [
"ns-update" "ns-update"
"launch-vm"
# "mk-backup-key" # "mk-backup-key"
# "wg-setup" # "wg-setup"
]; ];

37
scripts/launch-vm.sh Executable file
View file

@ -0,0 +1,37 @@
#!@bash@/bin/bash
# shellcheck shell=bash
set -o errexit
set -o nounset
set -o pipefail
MACHINE=""
HOSTFWD=""
while getopts 'p:o:h' opt; do
case "$opt" in
p)
HOSTFWD=",hostfwd=tcp::$OPTARG$HOSTFWD"
;;
o)
MACHINE="$OPTARG"
;;
h|?)
echo "Usage: $(basename "$0") [-p hostport-:guestport] -o MACHINE"
exit 1
;;
esac
done
shift "$((OPTIND -1))"
if [ -z "$MACHINE" ]; then echo "-o option needed"; exit 1; fi
DRV_PATH=$(@colmena@/bin/colmena eval --instantiate -E "{nodes, ...}: nodes.$MACHINE.config.system.build.vm")
echo "Realising $DRV_PATH"
RESULT=$(nix-store -r "$DRV_PATH")
echo "Built $RESULT, launching VM ..."
"$RESULT/bin/run-$MACHINE-vm" -device e1000,netdev=net0 -netdev "user,id=net0$HOSTFWD"