Skip to content
IT Works

Fleet automation

Managing a national digital signage fleet without a truck roll

Every franchise location ran its own signage player on its own consumer internet connection. We put the fleet on a Tailscale mesh and drove it with Ansible, so content, patching and provisioning stopped needing anyone on site.

Multi-location franchise · Canada, multi-province · anonymised at the client's request

The situation

What we walked into

Signage players were scattered across franchise locations nationwide, each behind a different consumer ISP, each behind NAT, none with a static address.

Reaching a player meant a site visit, or talking a franchisee through unplugging something over the phone. Neither scales, and franchisees are running a business, not a helpdesk.

Content changes, OS patching and the occasional wedged player all queued up behind that same problem, so screens drifted out of date and out of compliance with brand standards.

Opening a location meant configuring hardware by hand and hoping it matched the last one.

The work

What we built

A mesh instead of a hole in every firewall

Tailscale puts every player on one flat, authenticated network without port forwarding, static IPs, or asking a franchisee to touch their router. Nothing is exposed to the public internet, and the connection works the same on every ISP in the country.

ACLs so locations cannot see each other

A franchise network is not one company. Access rules scope each player so head office can reach everything, and no location can reach another — the segmentation matters as much as the connectivity.

Ansible for everything that repeats

Playbooks handle provisioning, content deployment, OS and player patching, and restarts. The work is declarative and version-controlled, so the fleet converges on a known state instead of drifting into as many configurations as there are sites.

New sites join instead of getting built

Opening a location is now image the player, join the tailnet, run the playbook. No specialist on site, no per-location snowflake, and the result is identical to every other location by construction.

The outcome

Where it landed

  • The whole fleet is reachable and manageable from head office, on any ISP, without inbound firewall rules.
  • Content and patching roll out centrally instead of per location.
  • New locations are provisioned without a site visit or a technician.
  • Every player converges on a defined configuration, so drift stops being a category of problem.

Got something shaped like this?

Most of this work starts the same way — finding out what is actually running before anyone proposes a fix.