prole/infrastructure/inventory/host_vars/merlin.prole.org.yml
chrisfu 17cb827be5 test(dashboard): add unit tests for systemd unit and script validation
- Ensure dashboard service doesn't create an ordering cycle with `multi-user.target`.
- Verify service safely attaches to a virtual terminal (VT) and passes VT to Xorg.
- Ensure no `su` usage by default in the service.
- Validate script behavior for passing VT and `-keeptty` options to Xorg.

chore(dashboard): update systemd unit to avoid VT conflicts and improve logging

- Remove `After` and `Wants` directives for `multi-user.target` to prevent conflicts.
- Add `TTYPath`, `StandardInput`, and related options for VT attachment.
- Ensure `ExecStopPost` restores getty service for the dashboard VT.

fix(dashboard): improve Xorg resolution and clean up script logic

- Dynamically determine Xorg executable location in `dashboard.sh`.
- Pass VT, display, and `-keeptty` to Xorg to improve script reliability.

fix(mariadb): correct exFAT mount options for external storage

- Avoid `chown` failures by setting root ownership with group access for `mysql`.
- Update external mount options to `uid=0,gid=mysql,umask=0002`.

cleanup(mariadb): remove unnecessary owner/group permissions from migration marker task
2026-03-13 01:49:57 -07:00

66 lines
2.3 KiB
YAML

---
ansible_host: 10.0.0.6
netplan_static_enabled: true
netplan_static_iface: eth0
netplan_static_address: 10.0.0.6/24
netplan_static_gateway4: 10.0.0.1
netplan_static_nameservers:
- 10.0.0.1
# MariaDB primary (USB-backed)
# Temporary borrowed USB disk for MariaDB (merlin only)
# - Disk: /dev/sda1 (exFAT)
# - Mount: /external (by UUID, discovered at runtime)
# - MariaDB datadir is expected at /srv/mariadb/mariadb, but is bind-mounted to /external/mariadb
mariadb_external_enabled: true
mariadb_external_device: /dev/sda1
mariadb_external_mountpoint: /external
mariadb_external_fstype: exfat
# exFAT does not support POSIX ownership/permissions.
# Use a root-owned mount with group access for `mysql`, instead of forcing everything to `mysql:mysql`.
mariadb_external_mount_opts: "defaults,nofail,x-systemd.device-timeout=10,uid=0,gid=mysql,umask=0002"
mariadb_external_src_datadir: /srv/mariadb/mariadb
mariadb_external_dst_datadir: /external/mariadb
mariadb_external_backup_datadir: /srv/mariadb/mariadb.pre-external
mariadb_external_migration_marker: /external/mariadb/.prole-mariadb-external-migrated
# k3s worker (stateless workloads)
k3s_enabled: true
k3s_role: agent
k3s_cluster_init: false
k3s_server_url: "https://myrddin.prole.org:6443"
# k3s datastore now lives on merlin.
# NOTE: Use IP to avoid DNS drift during migration/cutover.
k3s_datastore_mariadb_host: 10.0.0.6
k3s_datastore_mariadb_port: 3306
k3s_datastore_mariadb_db: k3s
k3s_datastore_mariadb_user: prole_k3s
k3s_datastore_endpoint: "mysql://{{ k3s_datastore_mariadb_user }}:{{ k3s_datastore_mariadb_password | urlencode }}@tcp({{ k3s_datastore_mariadb_host }}:{{ k3s_datastore_mariadb_port }})/{{ k3s_datastore_mariadb_db }}"
k3s_tls_sans:
- merlin.prole.org
k3s_service_node_labels: []
# No iSCSI mounts on merlin
iscsi_portal: 10.0.0.203
iscsi_targets:
# PROLE-K3S-1 (moved from retropie)
- iqn: "iqn.2000-01.com.synology:synology.Target-16.292d45194a1"
chap_user: "prole"
chap_password: "{{ vault_iscsi_prole_password }}"
mounts:
- path: /var/lib/rancher
fstype: ext4
opts: "_netdev,noatime"
# Use PARTUUID (stable across mkfs) because we intentionally re-initialize the filesystem.
src: "PARTUUID=29f70e08-5bf1-4803-b94c-ed82fa37f082"
iscsi_absent_mounts: []