summaryrefslogtreecommitdiffstats
path: root/roles/mount/README.md
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-07-19 00:23:36 +0200
committerAhmed Abdelhalim <[email protected]>2026-07-19 00:23:36 +0200
commit457ea6648783258458bb12280d39d5816450ff62 (patch)
treed1f7375ede93c47710fab15d2fb973e0f5bfdf86 /roles/mount/README.md
parent11e661babdb681924d902cbf193ed248dd88c039 (diff)
Rename backup -> mount as a role
Diffstat (limited to 'roles/mount/README.md')
-rw-r--r--roles/mount/README.md75
1 files changed, 75 insertions, 0 deletions
diff --git a/roles/mount/README.md b/roles/mount/README.md
new file mode 100644
index 00000000..c82c777a
--- /dev/null
+++ b/roles/mount/README.md
@@ -0,0 +1,75 @@
+# Mount Role
+
+Mounts a drive on the target host.
+
+## Overview
+
+Prepares a storage device as a mount point (e.g. local backup destination for S3-compatible object store like Garage).
+
+## Configuration
+
+### Required Variables
+
+```yaml
+mount_device: "PARTLABEL=backup" # no default — must set in host_vars
+```
+
+### Optional Variables
+
+```yaml
+mount_point: "/backup"
+mount_fstype: "ext4"
+mount_options: "defaults,noatime"
+```
+
+## Preparing the Drive
+
+### 1. Install parted
+
+```bash
+sudo apt install parted
+```
+
+### 2. Partition with a named label
+
+```bash
+# check device name
+lsblk
+
+# create GPT partition table + single labeled partition
+sudo parted /dev/sdX --script mklabel gpt mkpart backup ext4 0% 100%
+sudo parted /dev/nvme0nX --script mklabel gpt mkpart backup ext4 0% 100%
+
+# verify label
+sudo parted /dev/sdX print
+sudo parted /dev/nvme0nX print
+```
+
+### 3. Format as ext4
+
+```bash
+sudo mkfs.ext4 /dev/sdX1
+sudo mkfs.ext4 /dev/nvme0nXp1
+
+# verify
+sudo blkid /dev/sdX1
+sudo blkid /dev/nvme0nXp1
+
+ls /dev/disk/by-partlabel/
+```
+
+### 4. Set host variable
+
+In `host_vars/rpi5.local.yml`:
+
+```yaml
+mount_device: "PARTLABEL=backup"
+```
+
+`PARTLABEL` is stable across reboots regardless of device enumeration order (`/dev/sda` vs `/dev/sdb`).
+`ansible.posix.mount` handles `PARTLABEL=` values natively.
+
+## Notes
+
+- `noatime` mount option reduces unnecessary write cycles on the drive
+- Role adds a persistent fstab entry — drive auto-mounts on reboot