Tooling

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 --cli with a JSON config — script per-device hostname, SSH key, Wi-Fi. See Imaging Tools.
  • cloud-init NoCloud datasource — Ubuntu Server for Pi reads user-data and network-config from /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 commandsansible 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

  • restic to 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 — script raspi-config for 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.
  • 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 --cli JSON or cloud-init user-data.
  • Fleet monitoring on a budget: Beszel or Uptime Kuma.