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
3 changed files with 55 additions and 9 deletions
Generated
+3 -3
View File
@@ -264,11 +264,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1792615934, "lastModified": 1788187754,
"narHash": "sha256-MlvRfa1O5Cqc2/a+gG+l9TSuowEoCKCmrJ1d9oAVm0I=", "narHash": "sha256-bu1QxmXKmPuvBLN7bHP355OV9Qo13x9WCiRDH62CqRM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "da6dc0e7b26060f2f71ce3ef7088fb56ee44fa36", "rev": "5dfba6236110080a54247d6460bc2ff5dda939cc",
"type": "github" "type": "github"
}, },
"original": { "original": {
+16 -5
View File
@@ -47,13 +47,19 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
shellHook = ''echo "Available scripts: ${builtins.concatStringsSep " " installed}"''; shellHook = ''echo "Available scripts: ${builtins.concatStringsSep " " installed}"'';
}; };
legacyPackages = { legacyPackages.scripts = {
scripts.remote-install = pkgs.writeShellScriptBin "remote-install" (builtins.readFile ./scripts/remote-install-encrypt.sh); malobeo-remote-install = pkgs.writeShellScriptBin "malobeo-remote-install" (builtins.readFile ./scripts/remote-install-encrypt.sh);
scripts.boot-unlock = pkgs.writeShellScriptBin "boot-unlock" (builtins.readFile ./scripts/unlock-boot.sh); malobeo-boot-unlock = pkgs.writeShellScriptBin "malobeo-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); malobeo-add-host-keys = pkgs.writeShellScriptBin "malobeo-add-host-keys" (builtins.readFile ./scripts/add_new_host_keys.sh);
scripts.run-vm = self.packages.${system}.run-vm; 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; vmBuilder = utils.buildVM;
packages = { packages = {
@@ -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); 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 = { 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