From 8d2ba2b978ae2f766b82c056183477e57c2ffb32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Numbus?= Date: Sun, 25 Jan 2026 09:40:01 +0100 Subject: [PATCH] Trying to get mirror setup working --- deploy.sh | 33 ++++++++++------- templates/nix-config/disks/mirror.nix | 52 ++++++++++++--------------- 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/deploy.sh b/deploy.sh index 7256bf5..a948e73 100644 --- a/deploy.sh +++ b/deploy.sh @@ -617,22 +617,31 @@ echo "$REMOTE_PASS" | sudo -S mkdir -p /etc/secrets/disks/ echo "$REMOTE_PASS" | sudo -S bash -c "printf '%s' '$PASS' > /etc/secrets/disks/boot-${i}" EOF done - for i in $(seq 1 "$CONTENT_DISK_NUMBER"); do - PASS="$(xkcdpass)" - echo -n "$PASS" > "final-nix-config/etc/secrets/disks/content-${i}" - chmod 600 "final-nix-config/etc/secrets/disks/content-${i}" - ssh_to_host 'bash -s' << EOF + if [[ ${CONTENT_DISK_NUMBER} -ne 1 && ${PARITY_DISK_NUMBER} -ne 1 ]]; then + for i in $(seq 1 "$CONTENT_DISK_NUMBER"); do + PASS="$(xkcdpass)" + echo -n "$PASS" > "final-nix-config/etc/secrets/disks/content-${i}" + chmod 600 "final-nix-config/etc/secrets/disks/content-${i}" + ssh_to_host 'bash -s' << EOF echo "$REMOTE_PASS" | sudo -S bash -c "printf '%s' '$PASS' > /etc/secrets/disks/content-${i}" EOF - done - for i in $(seq 1 "$PARITY_DISK_NUMBER"); do - PASS="$(xkcdpass)" - echo -n "$PASS" > "final-nix-config/etc/secrets/disks/parity-${i}" - chmod 600 "final-nix-config/etc/secrets/disks/parity-${i}" - ssh_to_host 'bash -s' << EOF + done + for i in $(seq 1 "$PARITY_DISK_NUMBER"); do + PASS="$(xkcdpass)" + echo -n "$PASS" > "final-nix-config/etc/secrets/disks/parity-${i}" + chmod 600 "final-nix-config/etc/secrets/disks/parity-${i}" + ssh_to_host 'bash -s' << EOF echo "$REMOTE_PASS" | sudo -S bash -c "printf '%s' '$PASS' > /etc/secrets/disks/parity-${i}" EOF - done + done + else + PASS="$(xkcdpass)" + echo -n "$PASS" > "final-nix-config/etc/secrets/disks/mirror" + chmod 600 "final-nix-config/etc/secrets/disks/mirror" + ssh_to_host 'bash -s' << EOF +echo "$REMOTE_PASS" | sudo -S bash -c "printf '%s' '$PASS' > /etc/secrets/disks/mirror" +EOF + fi ### Generate disk keys <-- echo -e "\n ✅ Generating sops-nix keys..." diff --git a/templates/nix-config/disks/mirror.nix b/templates/nix-config/disks/mirror.nix index 6ff09df..61c2e62 100644 --- a/templates/nix-config/disks/mirror.nix +++ b/templates/nix-config/disks/mirror.nix @@ -1,20 +1,14 @@ - # Data mirror disks "content-1" = { type = "disk"; - device = "/dev/disk/by-id/ata-FUJITSU_MHW2120BH_NZ2TT772DCN5"; + device = "$CONTENT_DISK_ID"; content = { type = "gpt"; partitions = { - "data-1" = { + mdadm = { size = "$PARTITION_SIZE"; content = { - type = "luks"; - name = "crypted-content-1"; - settings.keyFile = "/etc/secrets/disks/content-1"; - content = { - type = "mdraid"; - name = "data-storage"; - }; + type = "mdraid"; + name = "raid1"; }; }; }; @@ -22,35 +16,33 @@ }; "parity-1" = { type = "disk"; - device = "/dev/disk/by-id/ata-TOSHIBA_MQ04ABF100_X7CXT0D8T"; + device = "$PARITY_DISK_ID"; content = { type = "gpt"; partitions = { - "parity-1" = { + mdadm = { size = "$PARTITION_SIZE"; content = { - type = "luks"; - name = "crypted-parity-1"; - settings.keyFile = "/etc/secrets/disks/parity-1"; - content = { - type = "mdraid"; - name = "data-storage"; - }; + type = "mdraid"; + name = "raid1"; }; }; }; }; }; - }; - - # RAID 1 Configuration - mdadm = { - "data-storage" = { - type = "mdadm"; - level = 1; - content = { - type = "filesystem"; - format = "xfs"; - mountpoint = "/mnt/data-storage"; + disko.devices.mdadm = { + raid1 = { + type = "mdadm"; + level = 1; + content = { + type = "luks"; + name = "crypted-mirror"; + settings.keyFile = "/etc/secrets/disks/mirror"; + content = { + type = "filesystem"; + format = "xfs"; + mountpoint = "/mnt/data"; + }; + }; }; };