# 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.