Updated VM-Oddjob to generically update multiple shares

This commit is contained in:
Jan-Bulthuis 2025-06-19 21:36:26 +02:00
parent 03604f9352
commit 0b5beaf63d

View File

@ -50,22 +50,39 @@
enable = true; enable = true;
systemCronJobs = systemCronJobs =
let let
script = pkgs.writeShellScript "backup-script" '' script = pkgs.writeShellScript "backup-script" (
. ${config.sops.secrets."backup-script-env".path} lib.concatStrings (
export PBS_REPOSITORY=$PBS_REPOSITORY [
export PBS_NAMESPACE=$PBS_NAMESPACE ''
export PBS_PASSWORD=$PBS_PASSWORD . ${config.sops.secrets."backup-script-env".path}
export PBS_FINGERPRINT=$PBS_FINGERPRINT export PBS_REPOSITORY=$PBS_REPOSITORY
${pkgs.proxmox-backup-client}/bin/proxmox-backup-client backup nfs.pxar:/mnt/nas --ns $PBS_NAMESPACE --backup-id nas-backup --change-detection-mode=metadata --exclude "#recycle" export PBS_NAMESPACE=$PBS_NAMESPACE
''; export PBS_PASSWORD=$PBS_PASSWORD
export PBS_FINGERPRINT=$PBS_FINGERPRINT
''
]
++ lib.map (share: ''
${pkgs.proxmox-backup-client}/bin/proxmox-backup-client backup nfs.pxar:/mnt/${share} --ns $PBS_NAMESPACE --backup-id share-${share} --change-detection-mode=metadata --exclude "#recycle"
'') inputs.secrets.lab.nas.backupShares
)
);
in in
[ [
"0 0 * * * ${script} " "0 0 * * * ${script} "
]; ];
}; };
fileSystems."/mnt/nas" = {
device = "//${inputs.secrets.lab.nas.host}/Backup"; # Mount filesystems
fsType = "cifs"; fileSystems = lib.listToAttrs (
options = [ "sec=krb5,credentials=${config.sops.secrets."smb-credentials".path}" ]; lib.map (share: {
}; name = "/mnt/${share}";
value = {
device = "//${inputs.secrets.lab.nas.host}/${share}";
fsType = "cifs";
options = [
"sec=krb5,credentials=${config.sops.secrets."smb-credentials".path}"
];
};
}) inputs.secrets.lab.nas.backupShares
);
} }