Backup hcloud instances with borg

This commit is contained in:
Paul-Henri Froidmont 2021-07-15 23:46:01 +02:00
parent 59cb6ac9b9
commit 292619386b
Signed by: phfroidmont
GPG key ID: BE948AFD7E7873BE
6 changed files with 87 additions and 6 deletions

View file

@ -27,10 +27,16 @@
system = "x86_64-linux";
modules = common.modules ++ [
./modules/postgresql.nix
./modules/custom-backup-job.nix
({
networking.hostName = "db1";
networking.domain = "banditlair.com";
networking.firewall.interfaces."enp7s0".allowedTCPPorts = [ 5432 ];
services.custom-backup-job = {
additionalReadWritePaths = [ "/nix/var/data/postgresql" ];
additionalPreHook = "${pkgs.postgresql_12}/bin/pg_dump -U synapse synapse > /nix/var/data/postgresql/synapse.dmp";
startAt = "03:00";
};
})
];
};
@ -39,11 +45,17 @@
modules = common.modules ++ [
./modules/murmur.nix
./modules/synapse.nix
./modules/custom-backup-job.nix
({
networking.hostName = "backend1";
networking.domain = "banditlair.com";
networking.firewall.allowedTCPPorts = [ 80 443 64738 ];
networking.firewall.allowedUDPPorts = [ 64738 ];
services.custom-backup-job = {
additionalReadWritePaths = [ "/nix/var/data/murmur" ];
additionalPreHook = "cp /var/lib/murmur/murmur.sqlite /nix/var/data/murmur/murmur.sqlite";
startAt = "03:30";
};
})
];
};

View file

@ -53,13 +53,15 @@ module "deploy_nixos_db1" {
target_host = hcloud_server.db1.ipv4_address
ssh_agent = true
keys = {
"postgres-init.sql" = <<EOT
"postgres-init.sql" = <<-EOT
CREATE ROLE "synapse" WITH LOGIN PASSWORD '${data.sops_file.secrets.data["synapse.db_password"]}';
CREATE DATABASE "synapse" WITH OWNER "synapse"
TEMPLATE template0
LC_COLLATE = "C"
LC_CTYPE = "C";
EOT
borgbackup-passphrase = data.sops_file.secrets.data["borg.passphrase"]
borgbackup-ssh-key = data.sops_file.secrets.data["borg.client_keys.db1.private"]
}
}
@ -100,7 +102,7 @@ module "deploy_nixos_backend1" {
ssh_agent = true
keys = {
"synapse-extra-config.yaml" = <<EOT
"synapse-extra-config.yaml" = <<-EOT
database:
name: psycopg2
args:
@ -110,8 +112,10 @@ module "deploy_nixos_backend1" {
password: "${data.sops_file.secrets.data["synapse.db_password"]}"
macaroon_secret_key: "${data.sops_file.secrets.data["synapse.macaroon_secret_key"]}"
EOT
"murmur.env" = <<EOT
"murmur.env" = <<-EOT
MURMURD_PASSWORD=${data.sops_file.secrets.data["murmur.password"]}
EOT
borgbackup-passphrase = data.sops_file.secrets.data["borg.passphrase"]
borgbackup-ssh-key = data.sops_file.secrets.data["borg.client_keys.backend1.private"]
}
}

View file

@ -0,0 +1,50 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.custom-backup-job;
in {
options.services.custom-backup-job = {
additionalReadWritePaths = mkOption {
type = with types; listOf path;
default = [];
};
additionalPreHook = mkOption {
type = types.lines;
default = "";
};
startAt = mkOption {
type = with types; either str (listOf str);
default = "03:30";
};
};
config = {
services.borgbackup.jobs.data = {
paths = [ "/nix/var/data" ];
doInit = false;
repo = "backup@212.129.12.205:./";
encryption = {
mode = "repokey-blake2";
passCommand = "cat /var/keys/borgbackup-passphrase";
};
readWritePaths = [
"/var/keys/borgbackup-ssh-key"
] ++ cfg.additionalReadWritePaths;
preHook = ''
#There is no way to specify the permissions on keys so we fix them here
chmod 0600 /var/keys/borgbackup-ssh-key
'' + cfg.additionalPreHook;
environment = { BORG_RSH = "ssh -i /var/keys/borgbackup-ssh-key"; };
compression = "lz4";
startAt = cfg.startAt;
prune.keep = {
within = "2d";
daily = 14;
weekly = 8;
monthly = 12;
};
};
};
}

View file

@ -5,8 +5,13 @@
package = pkgs.postgresql_12;
initialScript = "/var/keys/postgres-init.sql";
enableTCPIP = true;
identMap = ''
root_as_others root synapse
'';
authentication = ''
host all all 10.0.1.0/24 md5
local all postgres peer
local all all peer map=root_as_others
host all all 10.0.1.0/24 md5
'';
};
users.users.postgres.extraGroups = [ "keys" ];

View file

@ -93,6 +93,7 @@ in
database_args = {
host = "fake"; # This section is overriden in deploy_nixos keys
};
dataDir = "/nix/var/data/matrix-synapse";
extraConfigFiles = [ "/var/keys/synapse-extra-config.yaml" ];
};
users.users.matrix-synapse.extraGroups = [ "keys" ];

View file

@ -2,14 +2,23 @@ synapse:
db_password: ENC[AES256_GCM,data:hy2BgTsRaZDQZULTW/csmnRy5ZjDEuPqxyuINv0ov5pFzDkozJVL1wut3HgBXjYZ8bqNjS5pCPQtkznw,iv:i41zKGwvPGIEZP0ZjhRaY4UMeOXBovQmLr1e1ewZhV4=,tag:3kKKYouH+lOrNxPJE5ul/Q==,type:str]
macaroon_secret_key: ENC[AES256_GCM,data:6n1gCit2MC8l4VR9DSUR87BB+hY5Oza33423sbV8sNIXmZsPzhyvxaBalK/0TVjLH6Q=,iv:OgHxNG96ZW4+LPZhLAtOD01Wibad6vSX6s4BrPE67YE=,tag:OGIz/ufUwt8/pUMLvoaXtg==,type:str]
murmur.password: ENC[AES256_GCM,data:5Yu67/hMwdaIiDlU,iv:dAX6NCQTJtw3DZSzl3+zGTRAxCa93NxB0sAq0HegQbw=,tag:ibgGwH/fFMRuedv2zjsgnA==,type:str]
borg:
passphrase: ENC[AES256_GCM,data:RNUTb29sOdsg4KnB/0nIFGJFV/2nlMH4pxGFlgXdtTgDe2opT/moUg==,iv:6kdBeq+qFWnPB+N+zpKNdFkmkskOVMabdj8Uxk9QeQI=,tag:MxNqn5p9P0JpsjkNm9iYEQ==,type:str]
client_keys:
backend1:
public: ENC[AES256_GCM,data:npSex/eOGMvpqgiaTFZJq5oryU1D6TMaY5LTTTvtx0E/nuu94NWP1bQXXpRlvw2psv2/hJ2yyI7P0ITNDZnIOzWhVqzT0cFNtYLDsW/QXMxBdEB3BdgVsN0q0jUgZwgiIl3egJbBb2WKsOhunLbTjcoOoEcEtNVxcX8sU4fo5wws/zFmq6YvVTHcZqaaMb1NPAPnlP1X2aaJyWeDiuVPhAVnnxJkwk5Ex7PsLM27yaQT2q6bEP7Wp6/8G5spPaAU3qWq7jR72hkVYV/iDkzaX8xWzl33Pp9hnkxYTeLDVfgL5jhesvbJIWu+j3CjNuMzsz5tpnrPk/Ydfe5OhnnxjoQxCG03T/sfKXK/p9aaqMonEixIa/UWjHvggx0y9Xcw/Eg92pfCSVB86aexinjH9iCKJ2kvk7OJArqImdqdIA98mwf/cqJl5603NoBXQRkHulcy8C3lnT9hmh/o/B+oUj/J2RkDhQAyhtdn6c6bnVsCKTKs7niMhKFtXrzVt21Wvrt2SrhbTiLAIonyeqJAPpRQ3kqChuvy5mPiuAkwvIT90dO6VfXcY/AKqjLFP9m9mYFaXe5Tq0hDEl5V6+lzl6zIEeTLiw45OkNX/VRozJZVAxHyaebtf7FMNx0l0FXa63GtM7VtEWnZ8ILbnBubL4+qQpkYYWluQVwPb3yMl2h3pbHzXj8/ep1hjf9HefSKdyG6a5HjyCyqJ6tS7HfKTWJK5BJMAc34YOIFHYQZzTpJ961Zkuhq8F6hNcUZODZc4MApH/yJH1skvLdVYxmIpGGQerHMhgXQsWVKRsYmYWIYEpAkummM9s9wiT6F4ldJN27vQ+YI9I89KlnNknhwEpUpv2eWkcxmHLFvy4zdjdQaFLcPPyrbBLMecGZ+2NUDKVLIqg6saFKNbL0HbEkpQCQNt90HGMJzvMnwsGanw4vlF9Pxvd8fJCQDcCUAG8nIFeFekZxz0BSxEAnbE8gYRUEhUsB8jXCc,iv:2IwyFVqR8oIg7p4Uk8GxVg9EKVXwdwcL3sHoH6XJfAQ=,tag:H/I2DkO0bC8lypbjLVrdDA==,type:str]
private: ENC[AES256_GCM,data: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,iv:Fw/t4NazRxnjDWG4ZWJ+mgAQ1bRDB/MELAG1/FyX0TY=,tag:+sB9shG5a+QsdipzFcigsA==,type:str]
db1:
public: ENC[AES256_GCM,data:VkmGQMaYUHcyOczlSJyv3HBFpUO9TzdE7snmMsW7i/nxfGf4Eap/ByYck5RqIoQOC40qxz2MPZvHBya0uAIrbzjXNe7XgTRgZljQN7bDRCBJ/j5wpxWbVLwLEzXciw1u/6wBRhQCbXwm21JgKhCwnRUs9qrK8b6wLPo5Kr9mBKBNBGaiL4Xaj35MUSQlQVwu38canrB5CxuripfN51fFK7Qi4+bmbnZBwvWqqc8oeljonjn9nGL/aireHNRRGA7gS6CRZ3m1oUA0gMkY3g29ezp8QVY0fFAGeJfT31x/MKDgnzMLBLiN8tfhW93TFmRgOVIQhSSLTehYKSUtgXcYq9/kTHHcCo5bIiTSEirLX5zUNcEXlgA8zW1Cp3c2CN+ppiNIN6xjUfxMswXkKVZihzqEizGkKh4Qn31W0js/3AYNJKCABBOEv7fnfioZEli0YIxE3c3t1hqgfW26lv5mQXURXWu7OHtPvJleWyFsCphn5ylStvNvADdT5SvBvEnlu+PErZYPvbldPMpLr+Dn3UaJap9EEEJeGRw9WESs6eBlRiLSLp1TzevYh/cpwAc99EmHaiz6HJhQvYUVfzUClzhm/35/azOSMrCYLRr3G68F4/8QJ/8eXqBLmJ6YWQC6eo5IsQkaag0qyix1puMk/giBM5u74Naxd5spOrpYk16mOLn/1nl9L7y2e61d3YkaFVjfHep0agRqSSFRxwHLqfw1hPyAbsfRvrcF4B+4g/x6SMuWUceFK56V/rPkCT1Ktcxu4qp89uBQHhqbfpyWKeoXzcxrLGHbaJDMbWXNMRpbBtzQhOj7qNvX3iNzlgHgAi8exyEH8WixQUgmpYSnXNGSWCi/OwlIuO4R9HLSQewPoKE5AzOSXLsArD7hsQrkD1P180Rgg7eA7ZwRN/Q5wVSFi2OAgelO1YN6LG9ZQgb531V5lbwbpYk5Bt3joNAgD0IvYVB8x6w58WdkEHljC96Qfw==,iv:Y72HavxPRzTMSX0MG1ugmWcIZ/F5GeZon1PT6wx6I84=,tag:IcYr10CewW8iVZJwswv5rA==,type:str]
private: ENC[AES256_GCM,data:R1MHjNGfNTPqbvWSiB1BHI6OdwIzjTT0Ds0b0LKmagu0Oian9AV1Oj87V3xdfI6TSmOpaAHBgZZ5HGLX+zvIF9Ljo5e1QY6Yw9GH9SoqaNWxhGZRC5iQDiRCkEJT0/Z8wnr/IgSktrzNSZf6I0T/3jnj5n16/ZoKzHUM5aeNAkkMxF8rb98xIlQ9l4GNAhWizb4rIFl1fFT3jlCEwVuiDkA/jmOnWnc7hgGOhoLMXPFmewAfbqWGJzeb/majf0NlW7CgQQ11sz9t1xtaz7RVZTBWepMkwf7bcN0N3EdlnAZs/M8Lo6f7lzj4wZcMOYRwPfQ5In8G+48Uy+wz25K17quVpuq2UBP+Roo03rpTBxADNDDqzcfrMzxrZu4xiSEAxWnYRmHE7DycKOQPnWM/v4l9F+m2pB2QfkhBtzadZ3GgUeyrz9pkVDIhp6rLNGgjoS5i4p0qnFPdrqKNRYHJnqjtDNa1C3NLmCVSDtpKFbbU1QK86VZVN9xRVrm1/el1bTzmBztOiF/zCOyUnydTtRSd2hya7mErIqw+/Ddg76aRthwJXB3gpVCcEEHLpv2z2UGzrbkZEWJzlDl7uz4mXiQK6sI0QMI5CXzyLf+Z+7i3mBc+BEGA0tOfA0Rmd+LObt5peH3beItZKqylI8Md9sYu+U/zk6N2U1DrrzO3Dxp6KJHfbyk3NTiGU2pYoXljw2GrzJqepXJASM1m2w3i/JplRyFQbJcnJ+dZ7z3GA5RY0Aw0JCmZC2QUj2YDQYVBrBycSDuzY/7qDgi0AJth8ahmlU2qeccr89VGgJJYKCg1o1OXkIdi2SM3xcEM55nC8iSe86YpOzKpQzo1JT4sOUo6gUMNlJTYR1HlT4v92xtstQerMg8nUrfYxf0SXvUOQx0WIH/Xb+MfK7GVuNr1vTxCHEVIS8JrVL8qfFAdj++0/J0cdjnNsp/SPwD5b+BVDxlhyGWAd7MazlX7pXjjeML6/chZdYwAw2Nw6dKHxt/MT9WGxiSBEe6eUr0FG25lWiyhjKinhbTiR3eW++PlX/jsadSvQjr6/fRvtV9p3upHqAjDiZiGhje6Z1rGcxdZ0gcxgTNv1Y8+DrSsSmwF9kFEPUixlFTZF7udoWCCoywDwMeSlzN3foNFKo3V/8phLX++LTlqeMI52DUmt72KpPzLMTyuOQgDAx7Sk9o/ZKQBozQeK6QNlUyw3ynm4y/Mf+FUNy16ss6Y1Hxkk/D42jwgoDSBtRQG5j4H11ZQkVBBRTOpcNv3eoUMOygEq6y9dF1LjiPfRVrTNi004o/JLC2tEtx6+AAn8bIwfeH8qEW2OM72UvvCXb1JluF8qk2mHaEiWg2ODjAFQrpF0ZgFKqwsYs5Bsd9HQD5un0CCXdmwNKFj21BpPHnDEa3SCZSunaQSNyUJwlLUeTBOnAsULl3yVIjxiSXxn6kwKLu8K8bqrPBprDk24tpWcM5QQGS7o+9Zfs0EHsQILaGFvzQgajzL4GVNAKU/hmvkag6143Xf1eRJ/e1zHsmdMbBYOHt6KUcb0hWbY48Bgdf/O9tczeVx+RcwzpzObrtpMOvv/sRbVRYoPr3WFoL8lf7FqhRPIwccZIdxvgQQIVGhsr+qrkEjRCAgf/FJ0B0ZFZeePKC5s9ST2JxQsVfrLlQc36w3ls/lekWXdMZdz9dd9BtXssSsNOnmuL7tLExg8Qa1nHid4uZtMBc3B2SgCH2aSBj9+JqTFAXNH/Rvk7Wm8pP+00+NrPPhkm3qRtbcp4TDX8pkS3uvc/hw8Ybm6+F9IYgSPmRw2Wvt9xKPg1bgPVYpG3mkfq6KfTxO3fvO6WJu/InoGWJnJEfkQpvbqSHm1NP1C1bSH3DPUERIcz0hkDKDeGvBJxdRhtIPM3WfQiLkiOktbnEaGwAyNs3nNBexWDg2CLo1GIc8TuJUpZGLrl7gQunC210FoTPyK0C72h//NBpomaJr0F07Ct/+L220I6km5fLIyr69McVku/VXfiYZYcMcbbeYxf52LIQFeN7PQfrobXwSdB5pXYpvoaszyGJcY+iS1lqgKycvc/qWrjKtEUNn4u7nVHWTgDSVPdFqBVgZs2/msegiCbHQbWPovAwKODKgWCzmpjgVk16h1gy862h+R6n5mktVari3kzeXYKj1l0FHD7iuEu/Q0KUN9MzFYbO6+x3OqpAuUjJMYX7fdnSuZ1Tc1meRRqvxLmc4A0hPJg9nFvcFNucXzY4O54d/Q8FUXdnePLdozZKBVetqfrpnrQQcWdZTnHH3CCtZyxgrHCHFbYt1xdpA81Ql/CygL3Scf4gQcDQ+KkIfHPsLaBky8TeNjKAwP7PxrHqBgsCUhm1m4JbkGHdrXJNx3nVaS/HZPOtOzcURH4PA4Y7pQ81BYpJCW3ullaJagKSCFqGzgf6lrUkMGk8Agy91/7wes8gCEOJbCMjLEO8Ld0duaLwrU6nLZ164hiFexnBqpEKrz+GxVpUWKRfvZ/9shBvzTiqMtmq26UILoaUEr7iHoswgCkn/efTDtcgddW88TB8e8GeOitlGsIWRKwtxtwLCAu1vYo6A5C0HlpP3tgZSWmSQ2gkUvQZWbSgL7FFeHbDVEp+H0ZFw/ZM1rxljOq0vBVYNi19G1hGnqg0sRaWRgbTmzsd2WbjEEbksGQEVfr8qmv52SzUGdkOvxdKDeKY1zkZBUNp1E0gI8IdaLKLb5e2GbjefjrWeFfosJOQGJHiR/1dmRTyb0+LvztdjtTf0WEexai3vgTGIMJ7heMSeFF/7szBYL5XZWk6I6tv+MTh4Y8UDuEviDlmrWvFPQ5pTQrN0kGhVsenSOklOepE03ljfC7FZdb5TB2Ovm58OMOLjdV58Uo5rJ+z518MpmEAzu7zUFfXkTKb1/lq/otfxnRXt7/0TxuIxzXOerJ/bzP2BQDstxjQEvb3Jik+hk82ti80ECyca4ZwT0Tw0XBvkXTcDRMCAQFNcXqAigxU9vG5uzG/Ah2KYnysUMeMEfoxXDBmEbbEYAHlbrFW0/IofoEb48QAp4FJ0njpICVluuGtQw+nzq1T5foemU0uuf9bZz1DsTWY7WUY/zoveek476MRXkN12a83/R4XarRHnZRUxq7USSTv525sYhiU4gS17UZ2dOo0rpCh3r+6oPUmirtbsMHHMp7crsUr/TsGQVXnFsbSIbjqRm+lbb1qfA53p5aRIcmhN1qOuV54ByG9fLeGYKe8XwU87H2++UeIvhcbcNFEWDzT+mFxVo3NNH+rKmB0Pms9NkW+4eY7asRJgq9y4KHtBrGGtnsS3hOkCanHoRAT6iUPZsXL9yGqhYMf5a49fTKHyxgUb9M4rZ29wYAXBOKaQlsfkJkzjp+De9NTCIMMl13AgOQ0I76PK9Zlbigp0/wZZA/0FGbPRh1ESWctzUnjIuYRkh8lmyHRHNJI7gQsGqzBgsrzCPPFVDPupos/sGyhutMTPtucOXoQlWBJT+6yzTMTK73urZM5Q4pXw5RBZMa47WzjTl8Dr4tCeoOKUkOZG8QV1TTRa5ApCSSe6bd9qLAcedAQOKY2cBkOnAPeDmeB5xbtpt1badOz+DtsOJdfSX1NSCO6zotL1SfcCZUMmBA+5iLzIV6f86ckkLE7aQF82Mil8m2/xfdKzZ80pt4hjG1IMdmDpVmXHAiMUVXUVED0pKNpvYWm1endtkoWH9zL458Huj5gC8a11J2zidMBnoQ5/xMuphPiM49y+WHubtWJhw7J0hTg6w9WvPPSW+SSQlFFFVK8CcHkkVf9JD0DOJuPLXSBL0BaaROWp64S7gNqrBuLVTFDUH0U7IJ8COCv3klAdDxp4SI/N6tuwT1uEcNSokXE6n2a6MSx+AYvxvcumOj5KY1mH1gaGJUlDQqihdE2aR09JGUhcud7cK5z+CdKeAB49Ip5ZajUwDCoA/rNT/Lm9s0c4AF6OPRUbyO+oAwOKEYycFiXWkATwCF419yuosed7m7jfquyo1oYJfWMWGySSCAz43mO9Fh8Bu1TP2QbGPkHNkohUMWfs+3mkp004PHQymNQXJ4W4lR79Odk7g1YTp22PfFanaHqaoe8hSkVl6N0CKn80RNBExeG0JqhOfmTCNYtG0J9WJ9i2cG1qIM8j4JZShJQOeYZkqGSkjBcgnGoMCr5nnkI4Se2V73FbSZyL0SStLQ60+yjhg1x781AbnkWb2osQmzT9tEHgyjBh6z1EJufOpVHZ/6KPoVvY4LdQWePSwdEeS6fwg+BpnTiokuELWZ2SGYsOe7TkWRW9Zk3eCjIvGj6xHbwPXNAKOwWcFRrW56w2juRh1vroVwWCzdZ8dGSFvyzq7ZXLOFcZVrnBPMmYLumMI80CJUUjzCUJZOlFAQZaA5Gq4P+vYNWKTde3p3kYncwnFadujP/cyHOL8miaK/azXdrhr5qDMQYh/RCMvWRI0R8oqhBoCelX05lniybEvzt7WPbbRPW9SFFCDINqhM6mrgAfnpLOx+IfKHXfe4xevoPh,iv:lLpsQ4s8FC6yqO61lQ0sRPu8ZF9MwYiY9P2kKHfh5Ms=,tag:dfnYmBq6SsAZn8uqsMd0Ug==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2021-07-15T12:50:49Z"
mac: ENC[AES256_GCM,data:aNqs163uvOYBUWerAjGEzgAM97Y4zn4Pxv+3QYzhFYzPsdFhAHbpqSFZFa8ks78+nB2i9jnsnr7/kOJ1ZwQmYTnaIuZnNgjyBRSCyhvLQtba+gnIjam7RT3kP+m6FlBFy3rn20b9FjE7VdJz/ebzqz0QKKi1wZ5SuM4jJvXCeV0=,iv:yi4sm5uDEo37xHqRg4O+6ODf9ZVT0j81RLVyDjeaH4Q=,tag:JvnT+lzfM2hF3O0hJuI96w==,type:str]
lastmodified: "2021-07-15T17:12:44Z"
mac: ENC[AES256_GCM,data:CKOCRqPsj2OA+oi+Pwj+ulfKUOz45/tR/K6Egk4ENryzn/c3sLi1/HJ4qyINgurIOWsv1C8Ig1tg80q/NkEb1GAK70zPGJIpKkK4HXTMHgMJa/LBB/GGu38qnQ2r+lBi6/85qeG2MXDt1obWe2UG5mosYPNbD3i0V14siH22GFY=,iv:cXUx8y/Dt5+CW2mfjRSRBfeAgHXKZe1f9IPWcq3w5xM=,tag:pu9XLVJwjgWoso4BxT60ZA==,type:str]
pgp:
- created_at: "2021-07-14T18:02:07Z"
enc: |