37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# 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.
|