diff options
Diffstat (limited to 'hosts')
| -rw-r--r-- | hosts/vidhar/pgbackrest/ca/.gitignore | 3 | ||||
| -rw-r--r-- | hosts/vidhar/pgbackrest/ca/srv02.uniworx.de.crt | 11 | ||||
| -rw-r--r-- | hosts/vidhar/pgbackrest/default.nix | 30 |
3 files changed, 42 insertions, 2 deletions
diff --git a/hosts/vidhar/pgbackrest/ca/.gitignore b/hosts/vidhar/pgbackrest/ca/.gitignore index aa000280..11adcd4d 100644 --- a/hosts/vidhar/pgbackrest/ca/.gitignore +++ b/hosts/vidhar/pgbackrest/ca/.gitignore | |||
| @@ -1 +1,2 @@ | |||
| 1 | srv01.uniworx.de.key \ No newline at end of file | 1 | srv01.uniworx.de.key |
| 2 | srv02.uniworx.de.key | ||
diff --git a/hosts/vidhar/pgbackrest/ca/srv02.uniworx.de.crt b/hosts/vidhar/pgbackrest/ca/srv02.uniworx.de.crt new file mode 100644 index 00000000..e083c867 --- /dev/null +++ b/hosts/vidhar/pgbackrest/ca/srv02.uniworx.de.crt | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIBqDCCASigAwIBAgIPQAAAAGUZo5s1jqHzUfQfMAUGAytlcTAfMR0wGwYDVQQD | ||
| 3 | DBRwZ2JhY2tyZXN0LnlnZ2RyYXNpbDAeFw0yMzEwMDExNjQ2MDJaFw0zMzEwMDEx | ||
| 4 | NjUxMDJaMBsxGTAXBgNVBAMMEHNydjAyLnVuaXdvcnguZGUwKjAFBgMrZXADIQDv | ||
| 5 | TvJV+mY48X0v2H/Vf36C9pql6Ob4dC+4IFPeiKKVBqN/MH0wHwYDVR0jBBgwFoAU | ||
| 6 | 77/J8STBwuv6808izIJbzpTAndowHQYDVR0OBBYEFPkCU142blj3GWjKotoQuew7 | ||
| 7 | R2+fMA4GA1UdDwEB/wQEAwIF4DAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsG | ||
| 8 | AQUFBwMBBggrBgEFBQcDAjAFBgMrZXEDcwDfi8qRpcJ8B/9gGpEC8bfz93QgHDX1 | ||
| 9 | 25wiTcRI4VDO9XStL2Md9IRsbYtzqR2Rs9Vl2KFDLHG3QwD3bE7jeobJoLqtBcXC | ||
| 10 | JhzOxbsoUn7YG7RR6yW13sOGsj+ccnguN+hnwX5CDCjsOOT5TXgKQ5C7GwA= | ||
| 11 | -----END CERTIFICATE----- | ||
diff --git a/hosts/vidhar/pgbackrest/default.nix b/hosts/vidhar/pgbackrest/default.nix index 899b0e0f..0f86ebe9 100644 --- a/hosts/vidhar/pgbackrest/default.nix +++ b/hosts/vidhar/pgbackrest/default.nix | |||
| @@ -4,6 +4,12 @@ let | |||
| 4 | surtrRepoCfg = flake.nixosConfigurations."surtr".config.services.pgbackrest.settings.surtr; | 4 | surtrRepoCfg = flake.nixosConfigurations."surtr".config.services.pgbackrest.settings.surtr; |
| 5 | in { | 5 | in { |
| 6 | config = { | 6 | config = { |
| 7 | assertions = [ | ||
| 8 | (let | ||
| 9 | inherit (config.services.pgbackrest.package) version; | ||
| 10 | in { assertion = version == "2.45"; message = "Presumably incompatible pgBackRest version: ${version}"; }) | ||
| 11 | ]; | ||
| 12 | |||
| 7 | services.pgbackrest = { | 13 | services.pgbackrest = { |
| 8 | enable = true; | 14 | enable = true; |
| 9 | package = flakeInputs.nixpkgs-stable.legacyPackages.${config.nixpkgs.system}.pgbackrest; | 15 | package = flakeInputs.nixpkgs-stable.legacyPackages.${config.nixpkgs.system}.pgbackrest; |
| @@ -54,6 +60,20 @@ in { | |||
| 54 | repo2-retention-archive = 7; | 60 | repo2-retention-archive = 7; |
| 55 | }; | 61 | }; |
| 56 | 62 | ||
| 63 | "srv02.uniworx.de" = { | ||
| 64 | pg1-host-type = "tls"; | ||
| 65 | pg1-host = "srv02.uniworx.de"; | ||
| 66 | pg1-host-ca-file = toString ./ca/ca.crt; | ||
| 67 | pg1-host-cert-file = toString ./ca/vidhar.crt; | ||
| 68 | pg1-host-key-file = config.sops.secrets."pgbackrest.key".path; | ||
| 69 | pg1-path = "/var/lib/postgresql/15"; | ||
| 70 | |||
| 71 | repo2-path = "/var/lib/pgbackrest"; | ||
| 72 | repo2-retention-full-type = "time"; | ||
| 73 | repo2-retention-full = 14; | ||
| 74 | repo2-retention-archive = 7; | ||
| 75 | }; | ||
| 76 | |||
| 57 | "global" = { | 77 | "global" = { |
| 58 | compress-type = "zst"; | 78 | compress-type = "zst"; |
| 59 | compress-level = 9; | 79 | compress-level = 9; |
| @@ -67,7 +87,7 @@ in { | |||
| 67 | tls-server-ca-file = toString ./ca/ca.crt; | 87 | tls-server-ca-file = toString ./ca/ca.crt; |
| 68 | tls-server-cert-file = toString ./ca/vidhar.crt; | 88 | tls-server-cert-file = toString ./ca/vidhar.crt; |
| 69 | tls-server-key-file = config.sops.secrets."pgbackrest.key".path; | 89 | tls-server-key-file = config.sops.secrets."pgbackrest.key".path; |
| 70 | tls-server-auth = ["surtr.yggdrasil=surtr" "srv01.uniworx.de=srv01.uniworx.de"]; | 90 | tls-server-auth = ["surtr.yggdrasil=surtr" "srv01.uniworx.de=srv01.uniworx.de" "srv02.uniworx.de=srv02.uniworx.de"]; |
| 71 | }; | 91 | }; |
| 72 | 92 | ||
| 73 | "global:archive-push" = { | 93 | "global:archive-push" = { |
| @@ -93,6 +113,14 @@ in { | |||
| 93 | group = "pgbackrest"; | 113 | group = "pgbackrest"; |
| 94 | timerConfig.OnCalendar = "daily Europe/Berlin"; | 114 | timerConfig.OnCalendar = "daily Europe/Berlin"; |
| 95 | }; | 115 | }; |
| 116 | |||
| 117 | backups."srv02.uniworx.de-daily" = { | ||
| 118 | stanza = "srv02.uniworx.de"; | ||
| 119 | repo = "2"; | ||
| 120 | user = "pgbackrest"; | ||
| 121 | group = "pgbackrest"; | ||
| 122 | timerConfig.OnCalendar = "daily Europe/Berlin"; | ||
| 123 | }; | ||
| 96 | }; | 124 | }; |
| 97 | 125 | ||
| 98 | systemd.tmpfiles.rules = [ | 126 | systemd.tmpfiles.rules = [ |
