Remote-Aktualisierung Raspberry Pi Software 'over the air'
Verwenden wir einen Raspberry Pi embedded-computer verbinden, IP-Kameras auf einem Kunden-Netzwerk, um unsere cloud-basierte recording service.
Wir sind mit Raspbian und über 50% sind Wheezy und 50% sind Jessie.
Die Herausforderung, die wir haben, ist wie eine Remote-software-update auf diesen IFUs.
Unserer aktuellen Methode umfasst die Verwendung von SSH und Ansible. Wir haben eine komplexe Ansible Skript, das alle änderungen an der Raspberry Pi und wir automatisiert haben, dies in einem Ausmaß, so können wir updates viele Raspberry Pi ' s auf ein mal.
Aber, das problem ist, dass dies eine nicht-Atomare update. Der Raspberry Pi ist nicht unbedingt immer genau die gleiche Paket-Versionen auf Ihnen, je nachdem, Wann Sie aktualisiert wurden. Es ist auch möglich, für ein upgrade zu scheitern auf halbem Weg durch, etc.
Ich bin mir bewusst, dass es ein paar Möglichkeiten, tun ein atomic-Aktualisierung durch herunterladen einer neuen software-image' und tauschen auf es stattdessen mit einem bootloader. Ich denke OpenWRT kann dies tun, sowie swupdate: https://github.com/sbabic/swupdate
Hat jemand schon einmal etwas getan, wie dies auf einem Raspberry Pi vor?
Dank
- Es ist kein problem, verwenden Sie SWUpdate zusammen mit Raspi, wenn ich mich gut daran erinnern, ich habe einmal bei meinen tests mit einem Raspi3. Wie auch immer, Sie haben die Verwendung von U-Boot als bootloader (Yocto bauen können, dies für Sie zu, aber nur,- master, -morty ist noch zu ols), weil SWUpdate unterstützt derzeit keine anderen bootloader. Stefano
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als ein bisschen ein update auf diese Frage, fand ich ein paar Möglichkeiten, dies zu tun.
Das erste, was zu beachten ist, dass Sie nicht haben zu stick mit dem RPI-s Standard-bootloader, da @user3145836 hingewiesen. Uboot ermöglicht das spiegeln der boot-partition.
Die beste option im moment zu sein scheint https://mender.io und dies ist die option, die wir haben, Weg mit.
Wenn Sie dockerize Ihre app, https://resin.io/ ist eine schöne gehostet Weg, es zu tun.