Jpom 是一個簡而輕的低侵入式線上構建、自動部署、日常運維、專案運維監控軟體。提供了:
- 節點管理:叢集節點,統一管理多節點的專案,實現快速一鍵分發專案檔案
- 專案管理:建立、啟動、停止、實時檢視專案控制檯日誌,管理專案檔案
- SSH 終端:在瀏覽器中執行 SSH 終端,方便進行日常運維,記錄執行命令記錄
- 線上構建:線上拉取 GIT、SVN 倉庫快速構建專案包,不用運維人員手動上傳專案包
- 線上指令碼:線上管理指令碼、定時執行指令碼、webhook 鉤子執行、執行日誌等
- Docker管理:線上管理映象、容器、SWARM 叢集。介面化管理 DOCKER
- 使用者管理:多使用者管理,實現不同使用者不同許可權,使用者操作、管理日誌完善記錄
- 專案監控:實時監控專案當前狀態、如果異常自動觸發郵件、釘釘報警通知
- NGINX 配置、SSL 證照:線上快速方便的修改 NGINX 配置檔案,SSL 證照統一管理
Rainbond 與 Jpom 結合
Rainbond 與 Jpom 結合可以實現雲原生專案和本地專案的統一管理,例如:
- 使用 Rainbond 部署和管理 Jpom
- 可透過 Jpom 構建可容器化的雲原生專案並部署在 Rainbond 上管理和運維
- 透過 Jpom 管理一些無法容器化的傳統專案以及部署
- 透過 Jpom 管理 Rainbond 叢集的伺服器,可作為堡壘機使用
- 使用 Jpom 管理指令碼、執行指令碼和定時指令碼等。
部署 Jpom
前提
安裝 Rainbond,可透過一條命令快速安裝 Rainbond。
curl -o install.sh https://get.rainbond.com && bash ./install.sh
對接開源應用商店並部署 Jpom
Jpom 已釋出到 Rainbond 開源應用商店,可透過 Rainbond 開源應用商店一鍵部署 Jpom。
進入 Rainbond 控制檯的 平臺管理 -> 應用市場 -> 開源應用商店
中搜尋 Jpom
並安裝。
安裝完成後,可透過 Rainbond 提供的預設域名訪問 Jpom並登陸進行使用者註冊。
Jpom 快速入門
本地構建 + SSH 釋出 Java Jar 專案
簡述使用 Jpom 構建 Java 專案然後透過 SSH 釋出到伺服器上並執行。
1.新增 SSH 節點
進到 系統管理 -> 資產管理 -> SSH管理
新增 SSH 節點,如下圖。
新增 SSH 節點後,點選 關聯
,配置檔案目錄,釋出的專案將在這個目錄下操作。
2.新增 Git 倉庫資訊
進入 功能管理 -> 線上構建 -> 倉庫資訊
新增倉庫,Git 倉庫地址:https://gitee.com/rainbond/java-maven-demo
3.新增構建任務
進入 功能管理 -> 線上構建 -> 構建列表
新增構建:
-
名稱:自定義
-
源倉庫:選擇上一步建立的倉庫資訊
-
分支:master
-
方式:本地構建
-
構建命令:
mvn clean package
-
產物目錄:
target/java-maven-demo-0.0.1.jar
-
釋出操作:選擇 SSH
-
釋出的SSH:選擇第一步配置的 SSH 節點
-
釋出目錄:選擇配置的目錄
/home/zq
,java
目錄是專案執行目錄 -
釋出前命令:一般用於停止就的程式。
Tag="java-maven-demo"
pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo -n "boot ( pid $pid) is running"
echo
echo -n $"Shutting down boot: "
pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo "kill boot process"
# kill "$pid"
kill -9 "$pid"
fi
else
echo "boot is stopped"
fi
- 釋出後命令:一般用於啟動專案。
nohup java -Dappliction=java-maven-demo -jar /home/zq/java/java-maven-demo-0.0.1.jar > /dev/null 2>&1 &
其他都預設即可,儲存並構建。
等待構建完成後,就可以在伺服器上看到程式,並且也能訪問。
最後
Jpom 還有很多優秀的功能和場景,比如:節點管理、指令碼管理、檔案管理、監控管理 以及一些實踐場景等等,有興趣的小夥伴可以自行探索。