Is there a way to update multiple Raspberry Pi machines at the same time? Would it be possible to update them from a single copy of the image on the central Ubuntu PC server so that the download takes place only once?
The amount of Pis is 40.
Raspberry Pi Stack Exchange is a question and answer site for users and developers of hardware and software for Raspberry Pi. It only takes a minute to sign up.Sign up to join this community
You might want to look at Andrew Mulholland's work on Raspi-LTSP which uses a centralised controller for multiple Pis. It essentially uses the Pi as clients to connect to the central 'server' which can be a laptop or desktop machine. http://pi.gbaman.info/?p=256
Since the Pi boots from an SD card, you need either to update 40 cards using 'dd' to copy an image from your Ubuntu server, or use a bootable image like http://elinux.org/RPi_U-Boot that will pull the rest of the configuration from a TFTP server.
Don't mean to revive a dead question, but I've been using Ansible to great effect. You can take a look at https://github.com/heisters/node-omxplayer-sync-devops to see how I'm approaching it. It's nice because it just uses SSH, and doesn't require a client install on the pis.
I would suggest to do as they do in most companies to manage a large amount of machines / a cluster / ... and use Puppet/Chef
Here is an article on how to install it.
You can use a dedicated over-the-air software updater to get safety (rollback in case of any failure) as well as control (deploy to groups, get status & logs, etc). Mender supports Raspbian updates: https://hub.mender.io/t/raspberry-pi-3-model-b-b-raspbian