feat(scripts): Add a script to easily launch a vm with port forwarding #7
4 changed files with 62 additions and 2 deletions
|
@ -1,5 +1,6 @@
|
|||
# Copyright :
|
||||
# - Tom Hubrecht <tom.hubrecht@dgnum.eu> 2023
|
||||
# - Maurice Debray <maurice.debray@dgnum.eu> 2023
|
||||
#
|
||||
# Ce logiciel est un programme informatique servant à déployer des
|
||||
# configurations de serveurs via NixOS.
|
||||
|
@ -44,6 +45,7 @@
|
|||
"dgn-secrets"
|
||||
"dgn-ssh"
|
||||
"dgn-web"
|
||||
"dgn-vm-variant"
|
||||
]) ++ [
|
||||
"${sources.agenix}/modules/age.nix"
|
||||
"${sources.attic}/nixos/atticd.nix"
|
||||
|
|
19
modules/dgn-vm-variant.nix
Normal file
19
modules/dgn-vm-variant.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkIf;
|
||||
|
||||
cfg = config.dgn-vmVariant;
|
||||
in
|
||||
|
||||
{
|
||||
options.dgn-vmVariant.enable = mkEnableOption "ACME settings." // { default = true; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
virtualisation.vmVariant = {
|
||||
services.resolved.dnssec = "false";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -6,7 +6,8 @@ let
|
|||
bash
|
||||
colmena
|
||||
coreutils
|
||||
git;
|
||||
git
|
||||
jq;
|
||||
};
|
||||
|
||||
mkShellScript = name: (pkgs.substituteAll ({
|
||||
|
@ -22,6 +23,7 @@ let
|
|||
|
||||
scripts = [
|
||||
"ns-update"
|
||||
"launch-vm"
|
||||
# "mk-backup-key"
|
||||
# "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))"
|
||||
mdebray marked this conversation as resolved
Outdated
|
||||
|
||||
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")
|
||||
|
||||
mdebray marked this conversation as resolved
Outdated
thubrecht
commented
Je sais pas si c'est une bonne idée de modifier la variable Je sais pas si c'est une bonne idée de modifier la variable `PATH`, dans le doute je mettrais plutôt `RESULT`
mdebray
commented
J'ai pas fait gaffe mais oui J'ai pas fait gaffe mais oui
|
||||
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
Cette ligne plante si on n'a pas
jq
d'installé, il faut remplacer par@jq@/bin/jq
et rajouterjq
dans les substitutions descripts/default.ni