0

There are several RPIs hosting an (always identical) custom set of software, and it's configuration. Each RPI runs binaries, triggers shell scripts, has configs, and any or all of those moving parts may have to be updated over the Internet at any point.

Basically, I'm tying to automate someone coming over to each RPI, swapping the SD card with an updated one, and rebooting the device.

There must be a solution already. I found this question, this article, a mention of Docker; there's too many options and I'm confused. Is virtualisation what I'm looking for?

I was hoping the updates could be incremental, because any RPI may be on cellular connection.

Please guide me in what direction to research.

2

I would recommend you to have a look at Ansible as I am already using it to update some hundred Pis that are distributed over various places and sometimes also are only connected via LTE.

To reach all those Pis, I configured an openvpn-server to which all Pis connect when they boot.

In Ansible you can write playbooks and more or less you can do everything that is needed: copy files, install/update packages, maintain users, ... and the cool thing is that things only change if they need to be changed (e.g. if openvpn is already installed, it will not be installed anymore.) this is called idempotent.

When using the Ansible solution you also might have a look at AWX which allows you to execute Ansible playbooks via a Web-UI and which is easily setup in a docker-container on your server.

Of course there are alternatives to Ansible like Puppet or Chef.

It is hard to give you a precise answer, but I hope this guides you to the right direction, if you have any more questions, feel free to ask! Also when having specific Ansible-related questions ask them on stackoverflow, as there is a very active community answering them.

| improve this answer | |
  • Dear Stefan, I'm gladly accepting your answer as it's more than enough for me to keep looking for now. Thank you so much for your help! – aexl Sep 3 '19 at 19:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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