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.

  • 1
    can you connect with ethernet/wifi? then just script an ssh call to each, ssh [email protected] command
    – rob
    Nov 13, 2014 at 8:24

5 Answers 5


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.

  • How does it address the requirement of a single download?
    – techraf
    Oct 11, 2015 at 22:30
  • The single download requirement is a little unclear to me. However, if there's a specific file you only want to download once, you can download it to the local machine and then copy it to the clients. I used to do something similar for installing the latest omxplayer: github.com/heisters/node-omxplayer-sync-devops/blob/master/…
    – Ian
    Oct 12, 2015 at 16:54

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.

  • This is pretty similar to something like Ansible. Just for context rather than criticism, the reason I went with Ansible over Puppet or Chef is that it's a lot easier to get running on both the clients and the server. On the clients, the only dependency is SSH. I think you may sacrifice some speed and/or features for that ease of install, so Ansible may not be right in all situations.
    – Ian
    Oct 12, 2015 at 16:58

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.