Linux

更新二進製文件的最佳方法?

  • February 12, 2022

所以我正在製作一個可以編譯為二進製文件的負載均衡器。這將在多個伺服器上進行擴展。

要更新,程序本身將每 5 分鐘檢查一次 GitHub 儲存庫是否有新版本,如果有新版本,它會下載並覆蓋舊版本,然後執行命令systemctl restart lb

現在我的問題是,這是一種不好的做法嗎?這樣做有什麼缺點嗎?除此之外還有更好的更新做法嗎?

順便說一句,執行 cronjob 並不理想。

推薦的方法是生成一個作業系統包(.deb/.rpm/etc.)並將其提供給包管理器。

您可以利用 Github 操作來生成包,並將其上傳到二進制儲存庫,該儲存庫為包儲存庫創建必要的元文件。

該軟體包應具有重新啟動服務所需的命令。

這使得更換服務單元、二進製文件和支持文件變得微不足道。大多數包管理器支持某種形式的自動更新。即使在拙劣的更新上回滾到舊版本也是微不足道的。

您可以將系統設置為在上傳到包儲存庫後響應通過 Github 操作(webhook)呼叫的 HTTP 請求,從而從基於拉的輪詢方法切換到僅在更新 git 時觸發的基於推送的方法儲存庫。

引用自:https://serverfault.com/questions/1093497