2016-11-16 60 views
5

我們使用Raspberry Pi嵌入式計算機將客戶網絡上的IP攝像機連接到基於雲端的錄製服務。 我們使用Raspbian,約有50%是Wheezy,50%是Jessie。遠程更新Raspberry Pi軟件'空中'

我們面臨的挑戰是如何遠程更新這些IFU上運行的軟件。

我們目前的方法涉及使用SSH和Ansible。我們有一個複雜的Ansible腳本,可以對Raspberry Pi進行所有更改,並且我們已經實現了一定程度的自動化,因此我們可以一次更新大量的Raspberry Pi。

但是,問題是這是一個非原子更新。根據更新的時間,Raspberry Pi不一定總是有完全相同的軟件包版本。它也有可能升級失敗中途等。

我知道有幾種方法通過下載一個新的'軟件鏡像'並交換使用它來代替使用引導加載程序進行原子級升級。我認爲OpenWRT可以做到這一點以及swupdate:https://github.com/sbabic/swupdate

有沒有人曾經在Raspberry Pi之前做過這樣的事情?

謝謝

+1

與Raspi一起使用SWUpdate沒有問題,如果我記得我曾經爲我的Raspi3測試做過一次。無論如何,你必須使用U-Boot作爲引導程序(Yocto可以爲你構建,但只是在-master中,-morty仍然是ols),因爲SWUpdate目前不支持其他引導程序。 Stefano – sbabic

回答

8

作爲這個問題的一個更新,我找到了一些這樣做的方法。

首先要考慮的是,您不必像@ user3145836指出的那樣堅持使用RPI的默認引導加載程序。 Uboot允許你翻轉啓動分區。

目前最好的選擇似乎是https://mender.io,這是我們選擇的選項。

如果你可以dockerize你的應用程序,https://resin.io/是一個很好的託管方式。