開源一套快速部署程式的工具(CI/CD)

IWing發表於2023-11-16

隨著微服務越寫越多,程式釋出就成了一個麻煩事,所以寫了一個部署工具 Vela,只要填寫一個git地址、編譯命令等簡單資訊,就能自動完成程式的部署。

Vela 特性:


  • 程式碼可在任意一臺電腦自動完成編譯,再自動上傳至伺服器

  • 可指定程式以Docker容器方式執行

  • 編譯命令採用終端執行,理論支援所有命令列命令

  • 可線上編輯程式配置檔案,編輯時可選擇其他程式的配置檔案作為參考

  • 程式更新時會自動備份現有版本,日後可透過備份列表恢復

  • 實時以列表形式展示所有程式的CPU、記憶體佔用情況,並可設定報警線

Vela 構成


Vela 分為兩部份:

  • Vela Web

執行在任意一臺電腦上,它負責從git地址克隆程式碼,並執行編譯命令;
對外提供 web 管理頁面,作為 Vela 的管理入口。

  • Vela Agent

執行在目標伺服器上,負責接收 Vela Web 傳送過來的程式檔案,並打包為 Docker 映像,然後執行該映像。

Vela 下載地址


https://cccscls-my.sharepoint.com/:f:/g/personal/jack_mutc_ca/Et7VbP7sX31EiN-NQkPL0RgBL5RBG15_PyepR5Tx0PaqsQ?e=BTngox

Vela Agent 安裝


在目標伺服器(Linux)上,下載 VelaAgent.***.zip ,解壓後,在目錄下執行下面命令安裝vela-agent服務:

sudo chmod +x VelaService
sudo ./VelaService

會詢問你用什麼使用者來執行日後部署的程式,你可以輸入特點的使用者名稱,或者直接回車,用root使用者執行。

服務安裝完畢後,執行 systemctl start vela-agent 啟動服務。

如果你以後釋出的程式需要以Docker容器的方式執行,那麼,在此伺服器上,還需要安裝Docker。

Vela Web 安裝


如果你用windows跑vela web,直接執行 VelaWeb.Server.exe 即可,不用參考下面Linux安裝步驟。

在編譯伺服器(Linux)上,下載 VelaWeb.***.zip ,解壓後,在目錄下執行下面命令安裝vela-web服務:

sudo chmod +x VelaService
sudo ./VelaService

會詢問你用什麼使用者來執行該服務,你可以輸入特點的使用者名稱,或者直接回車,用root使用者執行。

服務安裝完畢後,執行 systemctl start vela-web 啟動服務。

由於我平時都是部署.net專案和vue前端專案,所以,編譯伺服器我還會安裝.net sdk、nodejs等環境

瀏覽器訪問管理頁面


vela-web是一個web服務,透過 http://ip:10001 可以訪問它的管理頁面,如果要修改它的埠,編輯 /opt/software/vela-web-application/appsettings.json 檔案,然後重啟服務即可:systemctl restart vela-web

預設管理員使用者:admin 密碼: admin

image

新增目標伺服器


在“伺服器列表”頁面,點選新增伺服器,把你的vela-agent伺服器,新增到列表當中。

image

為了安全考慮,一個 vela-agent 伺服器,只能被一個 vela-web 繫結,當 vela-agent 被新增到列表後,其他 vela-web 無法和它再繫結。

如果要解除這種繫結關係,需要手動刪除 vela-agent 伺服器上的 /opt/software/vela-agent-application/data.ClientCertHash檔案,並重啟服務:systemctl restart vela-agent

新增程式


在“程式部署列表”頁面,點選【新部署程式】按鈕,新增你要部署的程式。
例如,我現在要把一個開源的微服務閘道器,部署到我的伺服器上,可以如下配置:


image
image
image

編譯併發布


在程式列表中,點選表格左邊【...】按鈕,開啟選單,點選【檢視輸出日誌】按鈕
開源一套快速部署程式的工具(CI/CD)

然後會看到開啟一個終端頁面,點選【立刻釋出】按鈕,將會看到程式的編譯過程。

image

安裝nodejs也可編譯前端專案

如果你是第一次釋出這個程式,編譯完成後,它不會立刻執行,會提示你先修改此程式的配置檔案,再手動點選【啟動】來執行此程式。

原始碼地址


https://github.com/simpleway2016/vela.git

相關文章