forked from DGNum/infrastructure
feat(scripts): Add a script to easily launch a vm with port forwarding
This commit is contained in:
parent
bae1d02761
commit
3124465950
2 changed files with 40 additions and 1 deletions
|
@ -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
37
scripts/launch-vm.sh
Executable 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"
|
Loading…
Reference in a new issue