Compare commits

...
1 Commits
Author SHA1 Message Date
kalipso 44cbc96e0d [scripts] init malobeo ssh commands
Check flake syntax / flake-check (push) Successful in 7m26s
Hydra callback / on_push (pull_request) Skipped
Hydra callback / on_pr (pull_request) Successful in 8m32s
they are not yet working, its just placeholders
2026-11-03 18:16:06 +01:00
2 changed files with 52 additions and 6 deletions
+17 -6
View File
@@ -47,12 +47,18 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
shellHook = ''echo "Available scripts: ${builtins.concatStringsSep " " installed}"'';
};
legacyPackages = {
scripts.remote-install = pkgs.writeShellScriptBin "remote-install" (builtins.readFile ./scripts/remote-install-encrypt.sh);
scripts.boot-unlock = pkgs.writeShellScriptBin "boot-unlock" (builtins.readFile ./scripts/unlock-boot.sh);
scripts.add-host-keys = pkgs.writeShellScriptBin "add-host-keys" (builtins.readFile ./scripts/add_new_host_keys.sh);
scripts.run-vm = self.packages.${system}.run-vm;
};
legacyPackages.scripts = {
malobeo-remote-install = pkgs.writeShellScriptBin "malobeo-remote-install" (builtins.readFile ./scripts/remote-install-encrypt.sh);
malobeo-boot-unlock = pkgs.writeShellScriptBin "malobeo-boot-unlock" (builtins.readFile ./scripts/unlock-boot.sh);
malobeo-add-host-keys = pkgs.writeShellScriptBin "malobeo-add-host-keys" (builtins.readFile ./scripts/add_new_host_keys.sh);
malobeo-run-vm = self.packages.${system}.run-vm;
} // (import ./packages/ssh_to_hosts.nix) {
malobeo = (import ./machines/hosts.nix {}).malobeo;
peers = import ./machines/modules/malobeo/peers.nix;
pkgs = pkgs;
lib = nixpkgs.lib;
};
vmBuilder = utils.buildVM;
@@ -75,6 +81,11 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
};
run-vm = pkgs.writeShellScriptBin "run-vm" (builtins.readFile ./scripts/run-vm.sh);
} // (import ./packages/ssh_to_hosts.nix) {
malobeo = (import ./machines/hosts.nix {}).malobeo;
peers = import ./machines/modules/malobeo/peers.nix;
pkgs = pkgs;
lib = nixpkgs.lib;
};
apps = {
+35
View File
@@ -0,0 +1,35 @@
{ malobeo, peers, pkgs, lib, ... }:
#mapAttrs' (name: value: nameValuePair ("foo_" + name) ("bar-" + value))
let
get_ip = hostname: malobeo.hosts.${hostname}.network.address;
generate_ssh_command = hostname: hostConfig: (
if hostConfig.network.local == true then
if hostname == "fanny" then
"ssh admin@${malobeo.hosts."fanny".network.address}"
else
"ssh -J admin@${malobeo.hosts."fanny".network.address} admin@${get_ip hostname}"
else
"offsite"
);
in
(lib.attrsets.mapAttrs' (hostname: hostConfig: lib.nameValuePair
("malobeo-ssh-${hostname}")
(pkgs.writeShellScriptBin "malobeo-ssh-${hostname}"
''
#!/bin/sh
echo "${hostname} ${generate_ssh_command hostname hostConfig}"
'')) malobeo.hosts )
#{
# test-pkg = pkgs.writeShellScriptBin "run-vm" (builtins.readFile ../scripts/run-vm.sh);
#}
# microvm
# - local:
# - yes: ssh through fanny
# - no: if in peers.nix -> ssh through vpn, else not possible
# not microvm:
# - local:
# - yes: ssh through fanny (except for fanny)
# - no: not supported