我在這裏有一個很頭疼的問題。我們在相距數百公里的地方有多個樹莓小盆。我們需要能夠安全地(遠程)升級它們,因爲本地訪問的價格可能高達幾百歐元。通過GPRS到嵌入式設備的部署
的raspis運行rasbian,/是安裝在RO防止腐敗時,電源被切斷(通常次/天),SD卡上。 SD卡是從相同的基本映像克隆的,但包含手動安裝的軟件包和修改後的文件,這些文件可能在不同設備之間存在差異raspis都有一個USB閃存作爲一個更耐腐蝕的RW驅動器和一個腳本來啓動時格式化,以防驅動器損壞。他們通過不同的可靠性通過GPRS連接回家。
該系統的要求如下:
- 的配置文件,腳本和二進制文件,在leasts /等/根和家庭優選易於版本GIT中
- 高效上/從任何降級優化版本到其他通過GPRS - >傳輸文件的增量只
- 可能性自動回滾最近應用的補丁,如果連接不再工作
- 根文件系統無法在RW模式下,同時下載的變化,需要存儲的變化本地b在應用之前/
簡單的方法可能是在遠程git存儲庫中保留文件系統的完整副本,在提交之間生成差異文件,將修補程序上傳到該字段並應用它。但是,目前不同raspis上的文件並不相同。這意味着,至少在安裝系統時,文件必須通過類似於rsync -a的同步進行同步。
的程序應該是一起「拯救之間的差異/和SSH文件夾U盤上的文件,安裝/ RW,從文件應用差異,掛載/ RO」的線。 Rsync的確實的差異,獲取和同時應用,所以我的第一個問題是:
1是否存在類似rsync的,可以節省從本地和遠程文件三角洲和後來申請呢?
另外,我還從來沒有一個系統像這樣和drawt是「最接近合法的,我可以拿出」。這裏有很多移動部件,我很害怕我事先沒有想到的事情會導致事情發生可怕的錯誤。其餘的我的問題是:
- 我在這裏的基地,是否有一個更聰明/安全(r)的方式來做到這一點?
- 如果不是,我應該遵循什麼樣的最佳實踐以及需要特別小心的事情(不要使設備變磚)?
- 我該如何處理安裝新程序等事情?繞過數據包管理器,安裝在/ opt?
- 如何管理權限/所有者(應用程序邏輯的root + 1用戶)?只是以一切行爲爲根本,希望最好?
這是一個有趣的問題,所以+1,但我認爲這是目前形式太寬,以簡潔的回答。 –