Jpom 是一款簡而輕的低侵入式在線構建、自動部署、日常運維、項目監控軟體。
日常開發中,您是否有以下痛點?
- 團隊中沒有專業的運維,開發還要做運維的活,需要自己手動構建、部署項目。
- 不同的項目有不同的構建、部署命令。
- 有開發、測試、生成等多環境打包的需求。
- 需要同時監控多個項目的運行狀態。
- 需要下載 SSH 工具遠程連接伺服器。
- 需要下載 FTP 工具傳輸文件到伺服器。
- 多台伺服器時,在不同電腦之間帳號密碼同步不方便。
- 想使用一些自動化工具,但是對伺服器性能太高,搭建太麻煩。
- 對自動化工具有個性化的需求,想自己修改項目,但是市面上的工具太複雜了。
使用 Jpom 後
- 方便的用戶管理
- 用戶操作監控,監控指定用戶指定操作以郵件形式通知
- 多用戶管理,用戶項目權限獨立(上傳、刪除權限可控制),完善的操作日誌,使用工作空間隔離權限
- 帳號可以開啟 MFA 兩步驗證提高帳號安全性
- 界面形式實時查看項目運行狀態、控制台日誌、管理項目文件
- 在線修改項目文本文件
- Docker 容器管理、Docker Swarm 集群管理(Docker UI)
- 在線 SSH 終端,讓您在沒有 PuTTY、Xshell、FinalShell 等軟體也能輕鬆管理伺服器
- 登錄 Jpom 系統後不需要知道伺服器密碼
- 能指定 SSH 禁止執行的命令,避免執行高風險命令,並且能自動執行命令日誌
- 設置文件目錄,在線查看管理對應項目文件及配置文件
- SSH 命令模版在線執行腳本還能定時執行
- 在線修改文本文件
- 輕量的實現了簡單的 "堡壘機" 功能
- 使用項目分發一鍵搞定集群項目多機部署
- 在線構建不用手動更新升級項目
- 支持拉取 GIT、SVN 倉庫
- 支持容器構建(docker)
- 支持 SSH 方式發布
- 支持定時構建
- 支持 WebHook 形式觸發構建
- 支持在線編輯 nginx 配置文件並自動 reload 等操作
- 管理 nginx 狀態,管理 SSL 證書
- 項目狀態監控異常自動報警、自動嘗試重啟
- 支持郵件 + 丁丁群 + 微信群通知,主動感知項目運行狀況
- 節點腳本模版 + 定時執行或者觸發器,拓展更多功能
- 重要路徑授權配置,杜絕用戶誤操作系統文件
📥 安裝 Jpom#
Jpom 支持多種安裝方式,滿足不同用戶的個性化需求,您只需要選擇一種方式安裝即可。
在開始安裝之前我們需要一台伺服器,伺服器這裡我推薦伍六七雲:https://www.vps567.com 香港 2H2G5M 伺服器 20 / 月,還有高防 CDN 加速只需 18 / 月起。
方式一:🚀(推薦) 一鍵安裝(Linux)#
一鍵安裝服務端#
注意:安裝的目錄位於執行命令的目錄!
⚠️ 特別提醒:一鍵安裝的時候注意執行命令不可在同一目錄下,即 Server 端和 Agent 端不可安裝在同一目錄下!
如果需要修改服務端數據、日誌存儲的路徑請修改
application.yml
文件中jpom.path
配置屬性。
# 一鍵默認安裝
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default
# 一鍵默認安裝 + 自動配置開機自啟服務
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default+service
# 安裝服務端和 jdk 環境
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk
# 安裝服務端和 jdk、maven 環境
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk+mvn
# ubuntu
apt-get install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk
啟動成功後,服務端的端口為 2122
,可通過 http://127.0.0.1:2122/
訪問管理頁面(如果不是本機訪問,需要把 127.0.0.1 換成您安裝的伺服器 IP 地址)。
如無法訪問管理系統,執行命令
systemctl status firewalld
檢查下是否開啟了防火牆
,如狀態欄看到綠色顯示Active: active (running)
需要放行2122
端口。# 放行管理系統的 2122 端口 firewall-cmd --add-port=2122/tcp --permanent # 重啟防火牆才會生效 firewall-cmd --reload
如果在操作系統上放行了端口仍無法訪問,並且您使用的是雲伺服器,請到雲伺服器後台中檢查安全組規則是否放行 2122 端口。
⚠️ 注意: Linux 系統中有多種防火牆:Firewall、Iptables、SELinux 等,再檢查防火牆配置時需要都檢查一下。
一鍵安裝插件端#
如果安裝服務端的伺服器也需要被管理,在服務端上也需要安裝插件端(同一個伺服器中可以同時安裝服務端和插件端)
⚠️ 特別提醒:一鍵安裝的時候注意執行命令不可在同一目錄下,即 Server 端和 Agent 端不可安裝在同一目錄下!
如果需要修改插件端數據、日誌存儲的路徑請修改
application.yml
文件中jpom.path
配置屬性。
# 一鍵默認安裝
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default
# 一鍵默認安裝 + 自動配置開機自啟服務
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default+service
# 安裝插件端和 jdk 環境
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Agent jdk
# ubuntu
apt-get install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Agent jdk
啟動成功後,插件端的端口為 2123
,插件端提供給服務端使用。
方式二:📦 容器化安裝#
⚠️ 注意:容器化安裝方式需要先安裝 docker,點擊跳轉 docker 安裝文檔
一條命令安裝#
docker run -p 2122:2122 --name jpom-server jpomdocker/jpom
使用掛載方式存儲相關數據(在部分環境可能出現兼容性問題)#
docker pull jpomdocker/jpom
mkdir -p /home/jpom-server/logs
mkdir -p /home/jpom-server/data
mkdir -p /home/jpom-server/conf
docker run -d -p 2122:2122 \
--name jpom-server \
-v /home/jpom-server/logs:/usr/local/jpom-server/logs \
-v /home/jpom-server/data:/usr/local/jpom-server/data \
-v /home/jpom-server/conf:/usr/local/jpom-server/conf \
jpomdocker/jpom
使用容器卷方式存儲相關數據#
docker pull jpomdocker/jpom
docker volume create jpom-server-data
docker volume create jpom-server-logs
docker volume create jpom-server-conf
docker run -d -p 2122:2122 \
--name jpom-server \
-v jpom-server-data:/usr/local/jpom-server/data \
-v jpom-server-logs:/usr/local/jpom-server/logs \
-v jpom-server-conf:/usr/local/jpom-server/conf \
jpomdocker/jpom
容器化安裝僅提供服務端版。由於容器和宿主機環境隔離,而導致插件端的很多功能無法正常使用,因此對插件端容器化意義不大。
安裝 docker、配置鏡像、自動啟動、查找安裝後所在目錄等可參考文檔
https://jpom.top/pages/b63dc5/在低版本 docker 中運行可能出現
ls: cannot access'/usr/local/jpom-server/lib/': Operation not permitted
錯誤,此時需要添加--privileged
參數
如:docker run -p 2122:2122 --name jpom-server jpomdocker/jpom --privileged
方式三:💾 下載安裝#
- 下載安裝包 https://jpom.top/pages/all-downloads/
- 解壓文件
- 安裝插件端
agent-x.x.x-release
目錄為插件端的全部安裝文件- 上傳到對應伺服器(整個目錄)
- 啟動插件端,Windows 環境用 bat 腳本,Linux 環境用 sh 腳本。(如果出現亂碼或者無法正常執行,請檢查編碼格式、換行符是否匹配。)
- 插件端默認運行端口:
2123
- 安裝服務端
server-x.x.x-release
目錄為服務端的全部安裝文件- 上傳到對應伺服器(整個目錄)
- 啟動服務端,Windows 環境用 bat 腳本,Linux 環境用 sh 腳本。(如果出現亂碼或者無法正常執行,請檢查編碼格式、換行符是否匹配。)
- 服務端默認運行端口:
2122
,訪問管理頁面:http://127.0.0.1:2122/
(非本機訪問把127.0.0.1
換成您的伺服器 IP 地址)
方式四:⌨️ 編譯安裝#
- 訪問 Jpom 的碼雲主頁,拉取最新完整代碼(建議使用 master 分支)
- 切換到
web-vue
目錄,執行npm install
(vue 環境需要提前搭建和安裝依賴包詳情可以查看 web-vue 目錄下 README.md) - 執行
npm run build
進行 vue 項目打包 - 切換到項目根目錄執行:
mvn clean package
- 安裝插件端
- 查看插件端安裝包
modules/agent/target/agent-x.x.x-release
- 打包上傳伺服器運行(整個目錄)
- 啟動插件端,Windows 環境用 bat 腳本,Linux 環境用 sh 腳本。(如果出現亂碼或者無法正常執行,請檢查編碼格式、換行符是否匹配。)
- 默認運行端口:
2123
- 查看插件端安裝包
- 安裝服務端
- 查看插件端安裝包
modules/server/target/server-x.x.x-release
- 打包上傳伺服器運行(整個目錄)
- 啟動服務端,Windows 環境用 bat 腳本,Linux 環境用 sh 腳本。(如果出現亂碼或者無法正常執行,請檢查編碼格式、換行符是否匹配。)
- 服務端默認運行端口:
2122
,訪問管理頁面:http://127.0.0.1:2122/
(非本機訪問把127.0.0.1
換成您的伺服器 IP 地址)
- 查看插件端安裝包
也可以使用
script/release.bat
或script/release.sh
快速打包。
方式五:📦 一鍵啟動 docker-compose#
- 無需安裝任何環境,自動編譯構建
需要注意修改
.env
文件中的 token 值
yum install -y git
git clone https://gitee.com/dromara/Jpom.git
cd Jpom
docker-compose -f docker-compose.yml up
# docker-compose -f docker-compose.yml up --build
# docker-compose -f docker-compose.yml build --no-cache
# docker-compose -f docker-compose-local.yml up
# docker-compose -f docker-compose-local.yml build --build-arg TEMP_VERSION=.0
# docker-compose -f docker-compose-cluster.yml up --build
方式六:💻 編譯運行#
- 訪問 Jpom 的碼雲主頁 拉取最新完整代碼 (建議使用 master 分支,如果想體驗新功能可以使用
dev 分支) - 運行插件端
- 運行
org.dromara.jpom.JpomAgentApplication
- 留意控制台打印的默認帳號密碼信息
- 插件端默認運行端口:
2123
- 運行
- 運行服務端
- 運行
org.dromara.jpom.JpomServerApplication
- 服務端默認運行端口:
2122
- 運行
- 構建 vue 頁面,切換到
web-vue
目錄(前提需要本地開發環境有 node、npm 環境) - 安裝項目 vue 依賴,控制台執行
npm install
- 啟動開發模式,控制台執行
npm run dev
- 根據控制台輸出的地址訪問前端頁面:
http://127.0.0.1:3000/
(非本機訪問把127.0.0.1
換成您的伺服器 IP 地址)
管理 Jpom 命令#
- Windows 系統使用 bat 腳本文件。
# 服務端管理腳本 (命令行)
./bin/Server.bat start # 啟動Jpom服務端
./bin/Server.bat stop # 停止Jpom服務端
./bin/Server.bat restart # 重啟Jpom服務端
./bin/Server.bat status # 查看Jpom服務端運行狀態
# 服務端管理腳本 (控制面板),按照面板提示輸入操作
./bin/Server.bat
# 插件端管理腳本
./bin/Agent.bat start # 啟動Jpom插件端
./bin/Agent.bat stop # 停止Jpom插件端
./bin/Agent.bat restart # 重啟Jpom插件端
./bin/Agent.bat status # 查看Jpom插件端運行狀態
# 插件端管理腳本(控制面板),按照面板提示輸入操作
./bin/Agent.bat
Windows 系統中執行啟動後需要根據日誌去跟進啟動的狀態,如果出現亂碼請檢查或者修改編碼格式,Windows 系統中 bat
編碼格式推薦為GB2312
- Linux 系統中使用 sh 腳本文件。
# 服務端
./bin/Server.sh start # 啟動Jpom服務端
./bin/Server.sh stop # 停止Jpom服務端
./bin/Server.sh restart # 重啟Jpom服務端
./bin/Server.sh status # 查看Jpom服務端運行狀態
./bin/Service.sh install # 創建Jpom服務端的應用服務(jpom-server)
# 插件端
./bin/Agent.sh start # 啟動Jpom插件端
./bin/Agent.sh stop # 停止Jpom插件端
./bin/Agent.sh restart # 重啟Jpom插件端
./bin/Agent.sh status # 查看Jpom插件端運行狀態
./bin/Service.sh install # 創建Jpom插件端的應用服務(jpom-agent)
Linux 服務方式管理#
這裡安裝服務僅供參考,實際中可以根據需求自定義配置
在使用
./bin/Service.sh install
成功後systemctl {status | start | stop | restart} jpom-server
systemctl {status | start | stop | restart} jpom-agent
⚙️ Jpom 的參數配置#
在項目運行的根路徑下的 :
程序配置 ./conf/application.yml
#
- 插件端示例:
application.yml
- 服務端示例:
application.yml
項目日誌 ./conf/logback.xml
#
- 插件端示例:
logback.xml
- 服務端示例:
logback.xml