diff options
Diffstat (limited to 'hosts')
-rw-r--r-- | hosts/by-name/server1/configuration.nix | 11 | ||||
-rw-r--r-- | hosts/by-name/server1/networking.nix | 2 | ||||
-rw-r--r-- | hosts/by-name/server2/configuration.nix | 16 | ||||
-rw-r--r-- | hosts/by-name/server2/networking.nix | 34 | ||||
-rw-r--r-- | hosts/default.nix | 42 | ||||
-rw-r--r-- | hosts/host-names.toml | 2 |
6 files changed, 71 insertions, 36 deletions
diff --git a/hosts/by-name/server1/configuration.nix b/hosts/by-name/server1/configuration.nix index ab7c02a..6bb1067 100644 --- a/hosts/by-name/server1/configuration.nix +++ b/hosts/by-name/server1/configuration.nix @@ -25,7 +25,16 @@ postgresql.enable = true; redlib.enable = true; users.enable = true; - persist.enable = true; + persist = { + enable = true; + directories = [ + "/var/log" + + # TODO(@bpeetz): Instead of persisting that, encode each uid/gid directly in the + # config. <2024-12-24> + "/var/lib/nixos" + ]; + }; }; boot.tmp.cleanOnBoot = true; diff --git a/hosts/by-name/server1/networking.nix b/hosts/by-name/server1/networking.nix index 4e1d64a..dd9b9af 100644 --- a/hosts/by-name/server1/networking.nix +++ b/hosts/by-name/server1/networking.nix @@ -47,6 +47,6 @@ # cat /sys/class/net/eth0/address services.udev.extraRules = '' - ATTR{address}=="66:78:8e:15:33:2e", NAME="eth0" + ATTR{address}=="66:22:6d:82:93:9b", NAME="eth0" ''; } diff --git a/hosts/by-name/server2/configuration.nix b/hosts/by-name/server2/configuration.nix index 571a235..07b78c3 100644 --- a/hosts/by-name/server2/configuration.nix +++ b/hosts/by-name/server2/configuration.nix @@ -8,7 +8,7 @@ back = { enable = true; repositories = { - "${config.services.gitolite.dataDir}/vhack.eu/nixos-server.git" = { + "${config.services.gitolite.dataDir}/repositories/vhack.eu/nixos-server.git" = { domain = "issues.foss-syndicate.org"; port = 9220; }; @@ -20,9 +20,19 @@ domain = "git.foss-syndicate.org"; gitolite.adminPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIME4ZVa+IoZf6T3U08JG93i6QIAJ4amm7mkBzO14JSkz cardno:000F_18F83532"; }; - nginx.enable = true; + nginx = { + enable = true; + redirects = { + "source.foss-syndicate.org" = "https://git.foss-syndicate.org/vhack.eu/nixos-server"; + }; + }; openssh.enable = true; - persist.enable = true; + persist = { + enable = true; + directories = [ + "/var/log" + ]; + }; rust-motd.enable = true; users.enable = true; }; diff --git a/hosts/by-name/server2/networking.nix b/hosts/by-name/server2/networking.nix index e6a96c2..6b7b0ee 100644 --- a/hosts/by-name/server2/networking.nix +++ b/hosts/by-name/server2/networking.nix @@ -1,42 +1,40 @@ -{lib, ...}: let - ipv4 = "185.16.61.132"; - ipv6 = "2a03:4000:a:106::1"; -in { +{lib, ...}: { + # This file was populated at runtime with the networking + # details gathered from the active system. networking = { nameservers = [ - "8.8.8.8" + "46.38.225.230" + "46.38.252.230" + "2a03:4000:0:1::e1e6" ]; - - defaultGateway = { - address = "89.58.56.1"; - interface = "eth0"; - }; + defaultGateway = "185.16.60.1"; defaultGateway6 = { address = "fe80::1"; interface = "eth0"; }; - dhcpcd.enable = false; - usePredictableInterfaceNames = lib.mkForce false; - interfaces = { eth0 = { ipv4.addresses = [ { - address = ipv4; - prefixLength = 22; + address = "185.16.61.132"; + prefixLength = 23; } ]; ipv6.addresses = [ { - address = ipv6; + address = "2a03:4000:a:106:6478:8eff:fe15:332e"; + prefixLength = 64; + } + { + address = "fe80::6478:8eff:fe15:332e"; prefixLength = 64; } ]; ipv4.routes = [ { - address = ipv4; + address = "185.16.60.1"; prefixLength = 32; } ]; @@ -50,6 +48,6 @@ in { }; }; services.udev.extraRules = '' - ATTR{address}=="66:22:6d:82:93:9b", NAME="eth0" + ATTR{address}=="66:78:8e:15:33:2e", NAME="eth0" ''; } diff --git a/hosts/default.nix b/hosts/default.nix index f7df5d3..f53ee35 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -4,22 +4,38 @@ nixpkgs, specialArgs, extraModules, + deployPackage, }: let + hostnames = builtins.fromTOML (builtins.readFile ./host-names.toml); + hosts = nixLib.mkByName { useShards = false; baseDirectory = ./by-name; fileName = "configuration.nix"; - finalizeFunction = name: value: - nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - inherit specialArgs; - modules = - extraModules - ++ [ - ../modules - value - ]; - }; + finalizeFunction = name: value: value; }; -in - hosts + + mkNixosConfiguration = _: value: + nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + inherit specialArgs; + modules = + extraModules + ++ [ + ../modules + value + ]; + }; + nixosConfigurations = builtins.mapAttrs mkNixosConfiguration hosts; + + mkDeploy = name: _: { + hostname = hostnames."${name}"; + profiles.system = { + user = "root"; + path = deployPackage.lib.activate.nixos nixosConfigurations."${name}"; + }; + }; + deploy = {nodes = builtins.mapAttrs mkDeploy hosts;}; +in { + inherit nixosConfigurations deploy; +} diff --git a/hosts/host-names.toml b/hosts/host-names.toml new file mode 100644 index 0000000..fd5b960 --- /dev/null +++ b/hosts/host-names.toml @@ -0,0 +1,2 @@ +server1 = "server1.vhack.eu" +server2 = "server2.vhack.eu" |