Pi Fleet Management & Provisioning
Ansible, balenaCloud, Tailscale, OTA images — managing 5 to 500 Pis without losing your mind.
The "I have more than one Pi" problem. By 5 devices you stop SSHing manually; by 50 you need OTA images and remote diagnostics. The 2026 stack is Ansible for general Linux fleets, balenaCloud for OTA-image fleets, and Tailscale as the connectivity glue. For OS images see Pi OS Distributions; for first-flash see Imaging Tools; for SSH bastion / VPN patterns see SSH Bastion and VPN Mesh; for cluster boards see Cluster Boards.
First-flash / preconfig
- ★ Raspberry Pi Imager
--cliwith a JSON config — script per-device hostname, SSH key, Wi-Fi. See Imaging Tools. - ★
cloud-initNoCloud datasource — Ubuntu Server for Pi readsuser-dataandnetwork-configfrom/boot/firmware/. The path for "boot 50 Pis with unique hostnames + SSH keys + packages." - PXE / network boot — Pi 4 / Pi 5 firmware can netboot. Pair with dnsmasq or a Mikrotik router serving the boot files. The "no SD cards at all" path. See Bare-Metal Provisioning.
- iVentoy / netboot.xyz — netboot menus that include Pi options.
- ★ ipxe / Raspberry Pi netboot guide — the official path for Pi 4 / 5 PXE.
Config management (general Linux fleet)
- ★ Ansible — boring, works, no agent. Inventory file + playbooks → uniform fleet config. The default for hobbyist fleets ≤50 Pis. See Config Management.
- Ansible roles for Pi:
geerlingguy.pi-hole,klutchell.adguardhome, plus your own. - Salt / SaltStack — agent-based; fast at scale; more setup than Ansible. See Config Management.
- Puppet / Chef — overkill for hobby; mentioned for completeness.
- Nix / NixOS — declarative OS rebuilds; runs on Pi 4 / Pi 5 with
nixos-on-arm. The "I want byte-reproducible Pis" path; steep learning curve.
OTA-image fleet management
- ★ balenaCloud — flash balenaOS once, push container images via git push. Free tier up to 10 devices; paid above. The de-facto OTA fleet platform for hobbyist + commercial Pi products.
- balenaOS only (no cloud) — open-source host OS; you can self-host the management.
- ★ Mender — open-source OTA framework for embedded Linux (A/B partition updates). Self-hosted server option; commercial paid tier.
- RAUC — alternative A/B updater used by some industrial vendors.
- HawkBit (Eclipse) — FOSS OTA management server.
- swupdate — embedded Linux update agent; FOSS.
Container-based fleet (Docker on Pi)
- ★ Portainer — web UI for Docker / k8s; works on Pi; great for "5 Pis, manage all their containers." Free + paid tiers. See Self-Host Container Mgmt.
- Docker Swarm — lets you treat the fleet as one cluster with shared services. Maintenance-mode upstream but stable on Pi.
- k3s + FluxCD / ArgoCD — for fleets that should look like a real k8s cluster. See Cluster Boards and GitOps CD.
- HashiCorp Nomad — single-binary scheduler; very Pi-friendly. See Nomad Orchestration.
Connectivity at scale
- ★ Tailscale — install on every Pi → instant SSH access from anywhere, fleet-wide ACLs, magic DNS. Free for ≤100 devices personal. See VPN Mesh.
- Headscale — self-hosted Tailscale control plane; FOSS.
- WireGuard + wg-easy — simpler VPN if you don't need Tailscale's coordination.
- Cloudflare Tunnel — for "expose specific Pi services to the public internet without port forwarding." Free.
Monitoring fleets of Pis
- ★ Prometheus + node_exporter + Grafana — see Prometheus Stack. Default for "real" monitoring.
- ★ Uptime Kuma — friendly status pages and per-service monitoring; ARM-compatible. See Self-Host Monitoring & Uptime.
- Netdata — real-time per-Pi metrics dashboard; Pi-friendly. Free + paid cloud tier.
- Beszel — newer, ultra-lightweight FOSS server-monitoring agent; great for low-resource Pi fleets.
- Glances — single-Pi
top-style web dashboard; very small.
Logs / events
- ★ Loki + Promtail / Vector — see Log Aggregation. Promtail on each Pi → central Loki.
- Vector — fast Rust log shipper; nice on resource-constrained Pis.
- journald +
systemd-journal-remote— boring built-in path.
Remote shell / SSH at scale
- ★ Tailscale SSH — replaces SSH key management with Tailscale ACLs.
- Ansible ad-hoc commands —
ansible all -m shell -a "uptime"across the fleet. - OpenSSH ProxyJump + bastion host — see SSH Bastion.
- WebSSH appliances like sshwifty / Cockpit — see Self-Host SSH Terminal.
- RustDesk / NoMachine — for headless GUI Pis (rare, but exists).
Backup at fleet scale
resticto S3-compatible storage (Backblaze B2, MinIO, R2) — see Backup & DR. Run from cron on each Pi.- Borg + Borgmatic — alternative.
- PiShrink + nightly
dd | gzip— heavier; only for "I want exact image clones."
Secret management for fleets
- ★ age + sops — encrypt secrets in git, decrypt at deploy time. Easy and Pi-friendly.
- HashiCorp Vault (with Tailscale) — heavier but proper secret manager. See Infra Secrets.
- systemd credentials — built-in encrypted-secrets-at-rest.
Provisioning script lineage
- ★ PiBakery (deprecated, mentioned for legacy) — replaced by Pi Imager preconfig.
- ★
raspi-config --nonint— scriptraspi-configfor first-boot fleet config. - PiServer (Pi Foundation, classroom-focused) — was a multi-Pi netboot manager; mostly replaced by netboot from a normal Linux server.
- rpilocator — not provisioning, but the "find a Pi to actually buy" tool — bookmarkable for fleet purchases.
Paid commercial offerings
- balenaCloud (free tier ≤10 devices, paid above).
- Mender (free OSS server, paid hosted).
- AWS IoT Greengrass — heavyweight commercial fleet platform; Pi support real but rare for hobby.
- Azure IoT Edge — same niche.
- Particle Edge — IoT cloud with Pi support.
Honest scaling brackets
- 1-3 Pis: Tailscale + manual SSH + per-host docker-compose. Done.
- 4-15 Pis: Tailscale + Ansible + Portainer or k3s.
- 16-50 Pis: Ansible + GitOps + Prometheus, OR balenaCloud free tier + a few extras you self-host.
- 50-500 Pis: balenaCloud paid, Mender, or full k3s/Talos with Argo CD.
- 500+ Pis: you're a commercial product company; talk to balena or build it yourself with proper engineering.
Pick this if…
- General Linux fleet config: Ansible.
- OTA container images on a fleet: balenaCloud (≤10 free).
- Connectivity glue: Tailscale.
- Multi-Pi container management UI: Portainer.
- You want a real cluster, not a fleet: k3s — see Cluster Boards.
- Production-grade OTA, self-hosted: Mender or RAUC.
- Reproducible-OS purist: NixOS on ARM.
- First-boot / no-monitor fleet flash: Pi Imager
--cliJSON orcloud-inituser-data. - Fleet monitoring on a budget: Beszel or Uptime Kuma.