Skip to content

2026-07-05 — Sepia Ansible Remediation

Status

State: Completed Started: 2026-07-05 Completed: 2026-07-05

Context

A live audit of sepia showed drift between the Ansible playbooks under /ansible/sepia/ and the current host state. The main discrepancies that still need correction are:

  • /etc/fstab in Ansible still references the old sepia--vg-root mount and outdated boot entries.
  • ser2net in Ansible still points at the old FTDI USB serial device ID.
  • The live host still needs the package and locale state to be re-applied from the existing playbooks.

The root cronjobs and btrfs-snap script were present on the live host during the follow-up check, so they are not part of this remediation unless they drift again.

Related audit note: - journal/2026-05-17-ansible-sepia-audit.md

Goals

  • Update the sepia Ansible playbooks to match the current trixie-era host state.
  • Re-apply the relevant playbooks on sepia.
  • Verify /etc/fstab, /etc/ser2net.yaml, locale, and package state on the live host.

Steps

Step 1: Refresh the fstab playbook

  • Modify: /ansible/sepia/setup_fstab.yml
  • Replace the stale boot/root entries with the live values from sepia:
  • /boot -> UUID=a648c12e-ae5e-4cdc-8cec-48fcc00a7892 on ext4
  • /boot/efi -> UUID=CF86-8F36 on vfat with umask=0077 0 0
  • / -> /dev/mapper/sepia--vg-trixie--lv
  • Keep the rest of the data mounts and bind mounts as-is.
  • Verification: ssh sepia 'grep -A20 "# BEGIN ANSIBLE MANAGED BLOCK" /etc/fstab'

Step 2: Refresh the ser2net playbook

  • Modify: /ansible/sepia/setup_ser2net.yml
  • Update the serial device path to the currently attached FTDI device:
  • /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_ABAWD44U-if00-port0
  • Verification: ssh sepia 'grep -n "FTDI_" /etc/ser2net.yaml'

Step 3: Re-apply the live configuration

  • Run the relevant playbooks on sepia:
  • /ansible/sepia/install_software.yml
  • /ansible/sepia/setup_base.yml
  • /ansible/sepia/setup_fstab.yml
  • /ansible/sepia/setup_ser2net.yml
  • Verification after each run:
  • dpkg -l man
  • cat /etc/default/locale
  • findmnt /
  • cat /etc/ser2net.yaml

Step 4: Confirm no regression in cron and snapshot support

  • Check that the existing root cronjobs and /root/scripts/btrfs-snap remain present.
  • Verification:
  • crontab -l -u root
  • ls -l /root/scripts/btrfs-snap

Retrospective

  • Updated the sepia playbooks to match the live trixie-era host state.
  • Re-applied the relevant playbooks and verified fstab, locale, ser2net, man, cron, and btrfs-snap.
  • Left root cronjobs and the snapshot script unchanged because they were already present on the live host.

Rollback

  • Restore the previous playbook contents with git checkout -- sepia/setup_fstab.yml sepia/setup_ser2net.yml.
  • If a playbook run changes the live host in an unwanted way, re-run the relevant playbook after correcting the file or restore the old file from git and re-apply.
  • journal/2026-05-17-ansible-sepia-audit.md
  • journal/2026-07-05-sepia-ansible-remediation.md
  • plans/completed/2026-05-14-sepia-infrastructure-overhaul.md

Created: 2026-07-05