2024-05-14 19:21:19 +02:00
|
|
|
let
|
2024-03-13 11:11:16 +01:00
|
|
|
mods = import ./modules;
|
|
|
|
users = import ./users;
|
2024-06-01 00:28:17 +02:00
|
|
|
sources = import ./npins;
|
2024-06-19 08:34:47 +02:00
|
|
|
id_sylvain = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCvi5VUsDrwS4XqQQfFFIx1JoRDPVdtChUQWqKFbPFtP8gH51woXiKtKRbDebL0z/EmkdYKxxIkzixHTR5xQXjo8JiFZbwldZi5IvMr3x//ad9sVyOhmbRx1DXLKjyOdWyo+w0vORvbEDu2lHktfSvhHGrvUHfFc3EY+cAl7IImgGEeGNPruAuNkN90Lth9QgwJVsdOEs9j7hwwKtpfMMETL5tkW34Nu7io03+SaPxwi2xLuWTdTklfZ7GWYtG2w/hFkzDbkW97rp5dxB1HO58cPqyRlqyfhZFpiUmWlyuMba3Tip6JarCa52IpFffEIDR0CSeh5CFPoeppo/TPDiXDie370TjjQpxJiG+9PobBhmChH5FmQ/lksffI/WimqpVO7Ixf5cYiHN5Z0mgJgZsXwI3YPICQLA8ebSKHA8+mdmkunDmCBRaBj1qEgkp/UoYqXT6BjBm07nOsnL+3SG/yfx4fLotgWtdm2mkjEAG+OGVR7G3Vk/POxn0EqX7Z+gU= sylvain@idefix";
|
2024-07-26 21:22:44 +02:00
|
|
|
mkNixpkgsSrc = (import sources.nix-patches { patchFile = ./patches; }).mkNixpkgsSrc;
|
2024-05-14 19:21:19 +02:00
|
|
|
in
|
|
|
|
{
|
2024-07-26 21:22:44 +02:00
|
|
|
meta = {
|
|
|
|
nixpkgs = mkNixpkgsSrc {
|
|
|
|
src = sources.nixpkgs;
|
|
|
|
version = "unstable";
|
|
|
|
};
|
|
|
|
nodeNixpkgs."kat-mail-test" = mkNixpkgsSrc {
|
|
|
|
src = sources.nixpkgs;
|
|
|
|
version = "betamail";
|
|
|
|
};
|
|
|
|
specialArgs = {
|
|
|
|
inherit mods users sources;
|
|
|
|
};
|
2024-03-13 11:11:16 +01:00
|
|
|
};
|
2024-05-14 19:21:19 +02:00
|
|
|
defaults =
|
2024-06-01 16:26:08 +02:00
|
|
|
{
|
2024-06-18 09:47:57 +02:00
|
|
|
nodes,
|
2024-06-01 16:26:08 +02:00
|
|
|
name,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
config,
|
|
|
|
...
|
|
|
|
}:
|
2024-05-14 19:21:19 +02:00
|
|
|
{
|
2024-06-01 00:28:17 +02:00
|
|
|
imports = [
|
|
|
|
"${sources.home-manager}/nixos"
|
|
|
|
"${sources.agenix}/modules/age.nix"
|
2024-06-01 16:26:08 +02:00
|
|
|
"${sources.disko}/module.nix"
|
2024-08-21 12:20:36 +02:00
|
|
|
./domain-proxies-module.nix
|
|
|
|
./domain-proxies.nix
|
2024-06-01 00:28:17 +02:00
|
|
|
];
|
2024-06-01 16:26:08 +02:00
|
|
|
options.system.build.anywhere = lib.mkOption {
|
|
|
|
type = lib.types.package;
|
|
|
|
readOnly = true;
|
|
|
|
};
|
|
|
|
config = {
|
|
|
|
boot.tmp.useTmpfs = true;
|
|
|
|
networking.hostName = name;
|
2024-06-17 16:13:54 +02:00
|
|
|
nix = {
|
|
|
|
nixPath = [
|
|
|
|
"nixpkgs=${builtins.storePath pkgs.path}"
|
|
|
|
"nixos=${builtins.storePath pkgs.path}"
|
|
|
|
];
|
2024-06-26 00:18:00 +02:00
|
|
|
channel.enable = false;
|
|
|
|
settings.nix-path = config.nix.nixPath;
|
2024-06-17 16:13:54 +02:00
|
|
|
package = pkgs.lix;
|
|
|
|
};
|
2024-09-16 14:57:08 +02:00
|
|
|
services = {
|
|
|
|
resolved.enable = true;
|
|
|
|
openssh.settings = {
|
|
|
|
ClientAliveInterval = 60;
|
|
|
|
ClientAliveCountMax = 1;
|
|
|
|
};
|
2024-07-29 14:39:16 +02:00
|
|
|
};
|
2024-06-01 16:26:08 +02:00
|
|
|
system.build.anywhere = pkgs.writeShellApplication {
|
|
|
|
name = "anywhere-deploy_${name}.sh";
|
|
|
|
runtimeInputs = [ pkgs.nixos-anywhere ];
|
2024-06-25 18:31:43 +02:00
|
|
|
# --kexec ${nodes.kat-kexec.config.system.build.kexecTarball}/${nodes.kat-kexec.config.system.kexec-installer.name}-${pkgs.stdenv.hostPlatform.system}.tar.gz
|
2024-06-01 16:26:08 +02:00
|
|
|
text = ''
|
2024-06-25 18:31:43 +02:00
|
|
|
nixos-anywhere --store-paths ${config.system.build.diskoScriptNoDeps} ${config.system.build.toplevel} ${config.deployment.targetHost}
|
2024-06-01 16:26:08 +02:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
2024-05-14 19:21:19 +02:00
|
|
|
};
|
2024-03-18 20:26:22 +01:00
|
|
|
|
2024-05-14 19:21:19 +02:00
|
|
|
kat-probook =
|
2024-06-25 18:31:43 +02:00
|
|
|
{ users, ... }:
|
2024-05-14 19:21:19 +02:00
|
|
|
{
|
|
|
|
deployment.allowLocalDeployment = true;
|
|
|
|
|
|
|
|
imports = [
|
2024-06-25 18:19:34 +02:00
|
|
|
./machines/kat-probook
|
2024-05-14 19:21:19 +02:00
|
|
|
(users.root { ssh = false; })
|
|
|
|
users.catvayor
|
|
|
|
];
|
|
|
|
nix.settings.trusted-users = [
|
|
|
|
"root"
|
|
|
|
"@wheel"
|
|
|
|
];
|
|
|
|
};
|
2024-03-16 20:03:01 +01:00
|
|
|
|
2024-06-27 16:59:33 +02:00
|
|
|
kat-manah =
|
2024-06-25 18:31:43 +02:00
|
|
|
{ users, ... }:
|
2024-05-14 19:21:19 +02:00
|
|
|
{
|
2024-06-27 16:59:33 +02:00
|
|
|
deployment.targetHost = "manah.kat";
|
2024-05-14 19:21:19 +02:00
|
|
|
imports = [
|
2024-06-27 16:59:33 +02:00
|
|
|
./machines/kat-manah
|
2024-05-14 19:21:19 +02:00
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
|
|
|
};
|
2024-03-18 20:26:22 +01:00
|
|
|
|
2024-06-25 18:31:43 +02:00
|
|
|
kat-watcher =
|
|
|
|
{ users, ... }:
|
|
|
|
{
|
|
|
|
deployment.targetHost = "watcher.kat";
|
|
|
|
imports = [
|
|
|
|
./machines/kat-watcher
|
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2024-05-14 19:21:19 +02:00
|
|
|
kat-virt =
|
2024-06-25 18:31:43 +02:00
|
|
|
{ users, ... }:
|
2024-05-14 19:21:19 +02:00
|
|
|
{
|
2024-06-25 18:31:43 +02:00
|
|
|
deployment = {
|
|
|
|
targetHost = "virt.kat";
|
|
|
|
tags = [ "kat-vms" ];
|
|
|
|
};
|
2024-06-30 19:49:07 +02:00
|
|
|
services.qemuGuest.enable = true;
|
|
|
|
boot.kernelParams = [ "console=ttyS0" ];
|
2024-05-14 19:21:19 +02:00
|
|
|
|
|
|
|
imports = [
|
2024-06-25 18:19:34 +02:00
|
|
|
./machines/kat-virt
|
2024-05-14 19:21:19 +02:00
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
2024-06-19 08:34:47 +02:00
|
|
|
users.users.root.openssh.authorizedKeys.keys = [ id_sylvain ];
|
2024-03-22 14:24:31 +01:00
|
|
|
};
|
2024-03-18 20:26:22 +01:00
|
|
|
|
2024-06-19 08:34:47 +02:00
|
|
|
kat-mail-test =
|
2024-06-25 18:31:43 +02:00
|
|
|
{ users, ... }:
|
2024-06-19 08:34:47 +02:00
|
|
|
{
|
2024-06-25 18:31:43 +02:00
|
|
|
deployment = {
|
|
|
|
targetHost = "mail-test.kat";
|
|
|
|
tags = [ "kat-vms" ];
|
|
|
|
};
|
2024-06-30 19:49:07 +02:00
|
|
|
services.qemuGuest.enable = true;
|
|
|
|
boot.kernelParams = [ "console=ttyS0" ];
|
2024-06-19 08:34:47 +02:00
|
|
|
|
|
|
|
imports = [
|
|
|
|
./machines/kat-mail-test
|
|
|
|
(users.root { ssh = true; })
|
2024-06-01 16:26:08 +02:00
|
|
|
];
|
2024-06-19 08:34:47 +02:00
|
|
|
users.users.root.openssh.authorizedKeys.keys = [ id_sylvain ];
|
2024-06-01 16:26:08 +02:00
|
|
|
};
|
|
|
|
|
2024-06-25 10:54:31 +02:00
|
|
|
kat-son =
|
2024-06-25 18:31:43 +02:00
|
|
|
{ users, ... }:
|
2024-06-25 10:54:31 +02:00
|
|
|
{
|
2024-06-25 18:31:43 +02:00
|
|
|
deployment = {
|
|
|
|
targetHost = "son.kat";
|
|
|
|
tags = [ "kat-vms" ];
|
|
|
|
};
|
2024-06-30 19:49:07 +02:00
|
|
|
services.qemuGuest.enable = true;
|
|
|
|
boot.kernelParams = [ "console=ttyS0" ];
|
2024-06-25 10:54:31 +02:00
|
|
|
imports = [
|
|
|
|
./machines/kat-son
|
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2024-08-07 17:26:34 +02:00
|
|
|
kat-orchid =
|
|
|
|
{ users, ... }:
|
|
|
|
{
|
|
|
|
deployment = {
|
|
|
|
targetHost = "orchid.kat";
|
|
|
|
tags = [ "kat-vms" ];
|
|
|
|
};
|
|
|
|
services.qemuGuest.enable = true;
|
|
|
|
boot.kernelParams = [ "console=ttyS0" ];
|
|
|
|
imports = [
|
|
|
|
./machines/kat-orchid
|
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2024-05-14 19:21:19 +02:00
|
|
|
kat-iso =
|
2024-06-01 00:28:17 +02:00
|
|
|
{
|
2024-06-25 18:31:43 +02:00
|
|
|
users,
|
2024-06-01 00:28:17 +02:00
|
|
|
pkgs,
|
|
|
|
modulesPath,
|
2024-06-30 19:49:07 +02:00
|
|
|
lib,
|
2024-06-01 00:28:17 +02:00
|
|
|
...
|
|
|
|
}:
|
2024-05-14 19:21:19 +02:00
|
|
|
{
|
|
|
|
deployment = {
|
|
|
|
allowLocalDeployment = false;
|
|
|
|
targetHost = null;
|
|
|
|
};
|
2024-03-16 20:03:01 +01:00
|
|
|
|
2024-05-14 19:21:19 +02:00
|
|
|
imports = [
|
2024-06-01 00:28:17 +02:00
|
|
|
(modulesPath + "/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix")
|
2024-05-14 19:21:19 +02:00
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
2024-03-16 20:03:01 +01:00
|
|
|
|
2024-05-14 19:21:19 +02:00
|
|
|
networking = {
|
|
|
|
networkmanager.enable = true;
|
|
|
|
wireless.enable = false;
|
|
|
|
};
|
|
|
|
console.keyMap = "fr";
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
perl
|
|
|
|
git
|
|
|
|
];
|
|
|
|
boot.supportedFilesystems = [ "bcachefs" ];
|
|
|
|
programs.zsh.enable = true;
|
|
|
|
services.openssh.enable = true;
|
|
|
|
services.qemuGuest.enable = true;
|
|
|
|
boot.kernelParams = [ "console=ttyS0" ];
|
2024-06-30 19:49:07 +02:00
|
|
|
services.getty.autologinUser = lib.mkForce "root";
|
2024-03-18 20:26:22 +01:00
|
|
|
};
|
2024-06-18 09:47:57 +02:00
|
|
|
|
|
|
|
kat-kexec =
|
|
|
|
{
|
2024-06-25 18:31:43 +02:00
|
|
|
users,
|
2024-06-18 09:47:57 +02:00
|
|
|
pkgs,
|
|
|
|
modulesPath,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
{
|
|
|
|
deployment = {
|
|
|
|
allowLocalDeployment = false;
|
|
|
|
targetHost = null;
|
|
|
|
};
|
|
|
|
|
|
|
|
imports = [
|
|
|
|
("${sources.nixos-images}/nix/kexec-installer/module.nix")
|
|
|
|
(users.root { ssh = true; })
|
|
|
|
];
|
|
|
|
|
|
|
|
networking = {
|
|
|
|
networkmanager.enable = false;
|
|
|
|
wireless.enable = false;
|
|
|
|
};
|
|
|
|
console.keyMap = "fr";
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
perl
|
|
|
|
git
|
|
|
|
];
|
|
|
|
programs.zsh.enable = true;
|
|
|
|
services.openssh.enable = true;
|
|
|
|
services.qemuGuest.enable = true;
|
|
|
|
boot.kernelParams = [ "console=ttyS0" ];
|
|
|
|
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
|
|
|
boot.supportedFilesystems = {
|
|
|
|
bcachefs = true;
|
|
|
|
zfs = lib.mkForce false;
|
|
|
|
};
|
2024-06-30 19:49:07 +02:00
|
|
|
services.getty.autologinUser = lib.mkForce "root";
|
2024-06-18 09:47:57 +02:00
|
|
|
};
|
2024-03-12 17:26:16 +01:00
|
|
|
}
|