Files
ansible/docs/superpowers/specs/2026-05-29-raspberry-pi-ansible-management-design.md
2026-06-04 01:45:16 +02:00

1.4 KiB

Raspberry Pi Ansible Management

Date: 2026-05-29

Goal

Bring naruto (Pi 4, 8GB) and pi (Pi 3, 1GB) under Ansible management using a new raspberry_pi role that starts with the common role as its base.

Inventory

New file vars/raspberry_pi.ini with a [raspberry_pi] group containing both hosts. Both connect as user tudattr (non-root, sudo available).

ARM Fixes in common Role

Two tasks in extra_packages.yaml are amd64-only and must be fixed before running on ARM:

  • bottom: URL is hardcoded to amd64.deb. Fix to use the existing arch global variable so it resolves to arm64 on aarch64 hosts.
  • Neovim: Fetched as an AppImage, which doesn't run on aarch64. Fix to install neovim via apt on ARM, skipping the AppImage path.

These fixes apply to the common role itself so any future ARM host benefits.

New Role: raspberry_pi

Structure mirrors other roles. tasks/main.yaml includes common tasks, then Pi-specific tasks (none yet — placeholder for future workloads like Newt on naruto, docker stack on pi).

New Playbook

playbooks/raspberry-pi.yaml targets raspberry_pi group, applies raspberry_pi role with tag raspberry_pi.

Group Vars

vars/group_vars/raspberry_pi/vars.yaml — empty for now, inherits all from all. Can hold Pi-specific overrides later.

Hostname

pi is currently named raspberrypi. The common hostname task will rename it to pi to match the inventory name.