Removed syncoid module

This commit is contained in:
alejandro-angulo 2024-09-17 17:45:41 -07:00
parent 917b7f352d
commit a816f12d4c
Signed by: alejandro-angulo
GPG key ID: 75579581C74554B6
3 changed files with 0 additions and 108 deletions

View file

@ -1,91 +0,0 @@
{
options,
config,
pkgs,
lib,
...
}: let
inherit (lib) mkIf;
cfg = config.aa.services.syncoid;
in {
options.aa.services.syncoid = with lib; {
enable = mkEnableOption "syncoid (ZFS snap replication)";
commands = mkOption {
type = types.attrs;
default = {};
description = "Commands to pass directly to syncoid, see `services.syncoid.commands`";
};
remoteTargetUser = mkOption {
type = types.str;
default = "";
description = "The user to use on the target machine.";
};
remoteTargetDatasets = mkOption {
type = types.listOf types.str;
default = [];
description = "Datasets to be used as a remote target (e.g. a NAS's backups dataset)";
};
remoteTargetPublicKeys = mkOption {
type = types.listOf types.str;
default = [];
description = "SSH public keys that the syncoid service's user should trust";
};
};
config = mkIf cfg.enable {
services.syncoid = {
enable = true;
localSourceAllow =
options.services.syncoid.localSourceAllow.default
++ [
"mount"
];
localTargetAllow =
options.services.syncoid.localTargetAllow.default
++ [
"destroy"
];
commands = lib.mkAliasDefinitions options.aa.services.syncoid.commands;
};
environment.systemPackages = mkIf (cfg.remoteTargetUser != "") (with pkgs; [
lzop
mbuffer
]);
users = mkIf (cfg.remoteTargetUser != "") {
users."${cfg.remoteTargetUser}" = {
shell = pkgs.bashInteractive;
group = cfg.remoteTargetUser;
isSystemUser = true;
home = "/var/lib/${cfg.remoteTargetUser}";
createHome = true;
openssh.authorizedKeys.keys = cfg.remoteTargetPublicKeys;
};
groups."${cfg.remoteTargetUser}" = {};
};
systemd.services.setup-syncoid-remote = {
description = "Permission setup for syncoid remote targets";
documentation = ["https://github.com/jimsalterjrs/sanoid/wiki/Syncoid#running-without-root"];
wantedBy = ["multi-user.target"];
path = [pkgs.zfs];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = "yes";
};
script = ''
DATASETS=(${toString cfg.remoteTargetDatasets})
for dataset in "''${DATASETS[@]}"; do
zfs allow \
-u ${cfg.remoteTargetUser} \
compression,mountpoint,create,mount,receive,rollback,destroy \
"$dataset"
done
'';
};
};
}

View file

@ -44,16 +44,6 @@
configureClientRouting = true;
configureServerRouting = true;
};
services.syncoid = {
enable = true;
commands = {
"rpool" = {
target = "backups@192.168.113.13:tank/backups/gospel/rpool";
recursive = true;
sshKey = "/var/lib/syncoid/.ssh/id_ed25519";
};
};
};
services.prometheus.enable = true;
services.promtail.enable = true;
services.hydra = {

View file

@ -42,13 +42,6 @@
};
services.loki.enable = true;
services.promtail.enable = true;
services.syncoid = {
# sudo -u backups zfs create -o mountpoint=/tank/backups/gospel tank/backups/gospel
enable = true;
remoteTargetUser = "backups";
remoteTargetDatasets = ["tank/backups"];
remoteTargetPublicKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAhA+9O2OBMDH1Xnj6isu36df5TOdZG8aEA4JpN2K60e syncoid@gospel"];
};
services.teslamate = {
enable = true;
database = {