隨著微服務越寫越多,程式釋出就成了一個麻煩事,所以寫了一個部署工具 Vela,只要填寫一個git地址、編譯命令等簡單資訊,就能自動完成程式的部署。
程式碼可在任意一臺電腦自動完成編譯,再自動上傳至伺服器
可指定程式以Docker容器方式執行
編譯命令採用終端執行,理論支援所有命令列命令
可線上編輯程式組態檔,編輯時可選擇其他程式的組態檔作為參考
程式更新時會自動備份現有版本,日後可通過備份列表恢復
實時以列表形式展示所有程式的CPU、記憶體佔用情況,並可設定報警線
Vela 分為兩部份:
執行在任意一臺電腦上,它負責從git地址克隆程式碼,並執行編譯命令;
對外提供 web 管理頁面,作為 Vela 的管理入口。
執行在目標伺服器上,負責接收 Vela Web 傳送過來的程式檔案,並打包為 Docker 映像,然後執行該映像。
https://cccscls-my.sharepoint.com/:f:/g/personal/jack_mutc_ca/Et7VbP7sX31EiN-NQkPL0RgBL5RBG15_PyepR5Tx0PaqsQ?e=BTngox
在目標伺服器(Linux)上,下載 VelaAgent.***.zip ,解壓後,在目錄下執行下面命令安裝vela-agent服務:
sudo chmod +x VelaService
sudo ./VelaService
會詢問你用什麼使用者來執行日後部署的程式,你可以輸入特點的使用者名稱,或者直接回車,用root使用者執行。
服務安裝完畢後,執行 systemctl start vela-agent 啟動服務。
如果你以後釋出的程式需要以Docker容器的方式執行,那麼,在此伺服器上,還需要安裝Docker。
如果你用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
在「伺服器列表」頁面,點選新增伺服器,把你的vela-agent伺服器,新增到列表當中。
為了安全考慮,一個 vela-agent 伺服器,只能被一個 vela-web 繫結,當 vela-agent 被新增到列表後,其他 vela-web 無法和它再繫結。
如果要解除這種繫結關係,需要手動刪除 vela-agent 伺服器上的 /opt/software/vela-agent-application/data.ClientCertHash檔案,並重啟服務:systemctl restart vela-agent
在「程式部署列表」頁面,點選【新部署程式】按鈕,新增你要部署的程式。
例如,我現在要把一個開源的微服務閘道器,部署到我的伺服器上,可以如下設定:
上面有幾個空格需要著重說明一下:
你的專案程式碼可能不是在git地址的根目錄下,假如你的程式碼在 MyProject/ 目錄下,那麼,【命令執行目錄】應該填寫 MyProject
這裡是填寫編譯專案的語句,例如,.net專案,就可以填寫:
dotnet publish --force -c release -o bin/publish --self-contained true --runtime linux-x64
注意,這個命令是在【命令執行目錄】下執行的,假如【命令執行目錄】= MyProject,那麼,最終編譯的檔案會輸出到 MyProject/bin/publish 目錄下
這裡是告訴伺服器,編譯後的檔案放在什麼地方了。
注意,這個目錄是相對於【命令執行目錄】而言的,所以,按照上面的編譯命令 ,【釋出檔案所在目錄】應該填寫 bin/publish
在程式列表中,點選表格左邊【...】按鈕,開啟選單,點選【檢視輸出紀錄檔】按鈕
然後會看到開啟一個終端頁面,點選【立刻釋出】按鈕,將會看到程式的編譯過程。
安裝nodejs也可編譯前端專案
如果你是第一次釋出這個程式,編譯完成後,它不會立刻執行,會提示你先修改此程式的組態檔,再手動點選【啟動】來執行此程式。
點選【檢視程式控制臺輸出】,可以檢視這個容器的紀錄檔
大家知道,可以通過 docker 映像直接部署一個PostgreSql資料庫,但是,為了在Vela中可以統一檢視資料庫的壓力狀態,通過vela來部署會更方便一些。
如下圖所示,新增部署程式,不要填寫git地址,只需要設定一些docker相關的資訊即可。
https://github.com/simpleway2016/vela.git
有問題可到qq群交流:1030042218