X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=modules%2Fprivate%2Fsystem%2Fbackup-2.nix;fp=modules%2Fprivate%2Fsystem%2Fbackup-2.nix;h=0000000000000000000000000000000000000000;hp=c01a666b7deea692a212ca5cd8ef16fc1c544aea;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0 diff --git a/modules/private/system/backup-2.nix b/modules/private/system/backup-2.nix deleted file mode 100644 index c01a666..0000000 --- a/modules/private/system/backup-2.nix +++ /dev/null @@ -1,137 +0,0 @@ -{ config, pkgs, resources, name, ... }: -{ - deployment = { - targetUser = "root"; - targetHost = config.hostEnv.ips.main.ip4; - substituteOnDestination = true; - }; - # ssh-keyscan backup-2 | nix-shell -p ssh-to-age --run ssh-to-age - secrets.ageKeys = [ "age1kk3nr27qu42j28mcfdag5lhq0zu2pky7gfanvne8l4z2ctevjpgskmw0sr" ]; - secrets.keys = { - "rsync_backup/identity" = { - user = "backup"; - group = "backup"; - permissions = "0400"; - text = config.myEnv.rsync_backup.ssh_key.private; - }; - "rsync_backup/identity.pub" = { - user = "backup"; - group = "backup"; - permissions = "0444"; - text = config.myEnv.rsync_backup.ssh_key.public; - }; - }; - boot.kernelPackages = pkgs.linuxPackages_latest; - myEnv = import ../../../nixops/secrets/environment.nix; - - imports = [ ] ++ builtins.attrValues (import ../..); - - fileSystems = { - "/backup2" = { - fsType = "ext4"; - device = "UUID=b9425333-f567-435d-94d8-b26c22d93426"; - }; - "/" = { device = "/dev/sda1"; fsType = "ext4"; }; - }; - - networking = { - firewall.enable = true; - interfaces."ens3".ipv4.addresses = pkgs.lib.attrsets.mapAttrsToList - (n: ips: { address = ips.ip4; prefixLength = 32; }) - (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") config.hostEnv.ips); - interfaces."ens3".ipv6.addresses = pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList - (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or [])) - config.hostEnv.ips); - defaultGateway6 = { address = "fe80::1"; interface = "ens3"; }; - }; - - boot.loader.grub.device = "nodev"; - - myServices.certificates.enable = true; - security.acme.certs."${name}" = { - user = config.services.nginx.user; - group = config.services.nginx.group; - }; - services.nginx = { - enable = true; - recommendedOptimisation = true; - recommendedGzipSettings = true; - recommendedProxySettings = true; - }; - networking.firewall.allowedTCPPorts = [ 80 443 ]; - - services.cron = { - mailto = "cron@immae.eu"; - enable = true; - }; - - services.rsyncBackup = { - mountpoint = "/backup2"; - profiles = config.myEnv.rsync_backup.profiles; - ssh_key_public = config.secrets.fullPaths."rsync_backup/identity.pub"; - ssh_key_private = config.secrets.fullPaths."rsync_backup/identity"; - }; - - myServices.mailRelay.enable = true; - myServices.mailBackup.enable = true; - myServices.monitoring.enable = true; - myServices.databasesReplication = { - postgresql = { - enable = true; - base = "/backup2"; - mainPackage = pkgs.postgresql; - hosts = { - eldiron = { - slot = "backup_2"; - connection = "postgresql://backup-2:${config.hostEnv.ldap.password}@eldiron.immae.eu"; - package = pkgs.postgresql; - }; - }; - }; - mariadb = { - enable = true; - base = "/backup2"; - hosts = { - eldiron = { - serverId = 2; - # mysql resolves "backup-2" host and checks the ip, but uses /etc/hosts which only contains ip4 - host = config.myEnv.servers.eldiron.ips.main.ip4; - port = "3306"; - user = "backup-2"; - password = config.hostEnv.ldap.password; - dumpUser = "root"; - dumpPassword = config.myEnv.databases.mysql.systemUsers.root; - }; - }; - }; - redis = { - enable = true; - base = "/backup2"; - hosts = { - eldiron = { - host = "127.0.0.1"; - port = "16379"; - }; - }; - }; - openldap = { - enable = true; - base = "/backup2"; - hosts = { - eldiron = { - url = "ldaps://${config.myEnv.ldap.host}:636"; - dn = config.myEnv.ldap.replication_dn; - password = config.myEnv.ldap.replication_pw; - base = config.myEnv.ldap.base; - }; - }; - }; - }; - - # This value determines the NixOS release with which your system is - # to be compatible, in order to avoid breaking some software such as - # database servers. You should change this only after NixOS release - # notes say you should. - # https://nixos.org/nixos/manual/release-notes.html - system.stateVersion = "20.03"; # Did you read the comment? -}