JpomJava 項(xiàng)目在線管理
Jpom是一款簡而輕的低侵入式在線構(gòu)建、自動部署、日常運(yùn)維、項(xiàng)目監(jiān)控軟件。
日常開發(fā)中,您是否有以下痛點(diǎn)?
- 團(tuán)隊(duì)中沒有專業(yè)的運(yùn)維,開發(fā)還要做運(yùn)維的活,需要自己手動構(gòu)建、部署項(xiàng)目。
- 不同的項(xiàng)目有不同的構(gòu)建、部署命令。
- 有開發(fā)、測試、生產(chǎn)等多環(huán)境打包的需求。
- 需要同時(shí)監(jiān)控多個(gè)項(xiàng)目的運(yùn)行狀態(tài)。
- 需要下載 SSH 工具遠(yuǎn)程連接服務(wù)器。
- 需要下載 FTP 工具傳輸文件到服務(wù)器。
- 多臺服務(wù)器時(shí),在不同電腦之間賬號密碼同步不方便。
- 想使用一些自動化工具,但是對服務(wù)器性能太高,搭建太麻煩。
- 對自動化工具有個(gè)性化的需求,想自己修改項(xiàng)目,但是市面上的工具太復(fù)雜了。
如果是分布式的項(xiàng)目,以上步驟則更加繁瑣。
讓 Jpom 來幫你解決這些痛點(diǎn)吧!然而,這些只是 Jpom 解決的最基礎(chǔ)的功能。
使用 Jpom 后
- 方便的用戶管理
- 用戶操作監(jiān)控,監(jiān)控指定用戶指定操作以郵件形式通知
- 多用戶管理,用戶項(xiàng)目權(quán)限獨(dú)立(上傳、刪除權(quán)限可控制),完善的操作日志,使用工作空間隔離權(quán)限
- 賬號可以開啟 MFA 兩步驗(yàn)證提高賬號安全性
- 界面形式實(shí)時(shí)查看項(xiàng)目運(yùn)行狀態(tài)、控制臺日志、管理項(xiàng)目文件
- 在線修改項(xiàng)目文本文件
- Docker 容器管理、Docker swarm 集群管理(Docker ui)
- 在線 SSH 終端,讓您在沒有 Xshell、FinalShell 等軟件也能輕松管理服務(wù)器
- 登錄 Jpom 系統(tǒng)后不需要知道服務(wù)器密碼
- 能指定 SSH 禁止執(zhí)行的命令,避免執(zhí)行高風(fēng)險(xiǎn)命令,并且能自動執(zhí)行命令日志
- 設(shè)置文件目錄,在線查看管理對應(yīng)項(xiàng)目文件及配置文件
- SSH 命令模版在線執(zhí)行腳本還能定時(shí)執(zhí)行
- 在線修改文本文件
- 輕量的實(shí)現(xiàn)了簡單的"堡壘機(jī)"功能
- 使用項(xiàng)目分發(fā)一鍵搞定集群項(xiàng)目多機(jī)部署
- 在線構(gòu)建不用手動更新升級項(xiàng)目
- 支持拉取 GIT、SVN 倉庫
- 支持容器構(gòu)建(docker)
- 支持 SSH 方式發(fā)布
- 支持定時(shí)構(gòu)建
- 支持 WebHook 形式觸發(fā)構(gòu)建
- 支持在線編輯 nginx 配置文件并自動 reload 等操作
- 管理 nginx 狀態(tài),管理 SSL 證書
- 項(xiàng)目狀態(tài)監(jiān)控異常自動報(bào)警、自動嘗試重啟
- 支持郵件 + 釘釘群 + 微信群通知,主動感知項(xiàng)目運(yùn)行狀況
- 節(jié)點(diǎn)腳本模版+定時(shí)執(zhí)行或者觸發(fā)器,拓展更多功能
- 重要路徑白名單模式,杜絕用戶誤操作系統(tǒng)文件
特別提醒
- 在 Windows 服務(wù)器中可能有部分功能因?yàn)橄到y(tǒng)特性造成兼容性問題,建議在實(shí)際使用中充分測試。Linux 目前兼容性良好
- 服務(wù)端和插件端請安裝到不同目錄中,切勿安裝到同一目錄中
- 卸載 Jpom 插件端或者服務(wù)端,先停止對應(yīng)服務(wù),然后刪除對應(yīng)的程序文件、日志文件夾、數(shù)據(jù)目錄文件夾即可
- 本地構(gòu)建依賴的是系統(tǒng)環(huán)境,如果構(gòu)建命令需要使用 maven 或者 node 需要在構(gòu)建項(xiàng)目的服務(wù)器安裝好對應(yīng)的環(huán)境。如果已經(jīng)啟動服務(wù)端再安裝的對應(yīng)環(huán)境需要通過命令行重啟服務(wù)端后環(huán)境才會生效。
- 在 Ubuntu/Debian 服務(wù)器作為插件端可能會添加失敗,請?jiān)诋?dāng)前用戶的根目錄創(chuàng)建 .bash_profile 文件
- 升級 2.7.x 后不建議降級操作,會涉及到數(shù)據(jù)不兼容的情況
- 由于目前 2.x.x 版本插件端和服務(wù)端主要采用 http 協(xié)議通訊,插件端和服務(wù)端網(wǎng)絡(luò)要求互通,在使用的時(shí)候請注意。
- Jpom 3.0 版本已經(jīng)開始規(guī)劃更新了,盡請期待新版本的誕生吧
版本更新日志
升級前必看:CHANGELOG.md
安裝 Jpom
Jpom 支持多種安裝方式,滿足不同用戶的個(gè)性化需求,您只需要選擇一種方式安裝即可。
方式一:(推薦) 一鍵安裝(Linux)
一鍵安裝服務(wù)端
注意:安裝的目錄位于執(zhí)行命令的目錄!
?? 特別提醒:一鍵安裝的時(shí)候注意執(zhí)行命令不可在同一目錄下,即 Server 端和 Agent 端不可安裝在同一目錄下!
如果需要修改服務(wù)端數(shù)據(jù)、日志存儲的路徑請修改
extConfig.yml文件中jpom.path配置屬性。
# 僅安裝服務(wù)端 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Server # 安裝服務(wù)端和 jdk 環(huán)境 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Server jdk # 安裝服務(wù)端和 jdk、maven 環(huán)境 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Server jdk+mvn # ubuntu apt install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Server jdk
啟動成功后,服務(wù)端的端口為 2122,可通過 http://127.0.0.1:2122/ 訪問管理頁面(如果不是本機(jī)訪問,需要把 127.0.0.1 換成你安裝的服務(wù)器 IP 地址)。
如無法訪問管理系統(tǒng),執(zhí)行命令
systemctl status firewalld檢查下是否開啟了防火墻 ,如狀態(tài)欄看到綠色顯示Active: active (running)需要放行2122端口。# 放行管理系統(tǒng)的 2122 端口 firewall-cmd --add-port=2122/tcp --permanent # 重啟防火墻才會生效 firewall-cmd --reload如果在操作系統(tǒng)上放行了端口仍無法訪問,并且你使用的是云服務(wù)器,請到云服務(wù)器后臺中檢查安全組規(guī)則是否放行 2122 端口。
注意: Linux 系統(tǒng)中有多種防火墻:Firewall、Iptables、SELinux 等,再檢查防火墻配置時(shí)候需要都檢查一下。
一鍵安裝插件端
如果安裝服務(wù)端的服務(wù)器也需要被管理,在服務(wù)端上也需要安裝插件端(同一個(gè)服務(wù)器中可以同時(shí)安裝服務(wù)端和插件端)
特別提醒:一鍵安裝的時(shí)候注意執(zhí)行命令不可在同一目錄下,即 Server 端和 Agent 端不可安裝在同一目錄下!
如果需要修改插件端數(shù)據(jù)、日志存儲的路徑請修改
extConfig.yml文件中jpom.path配置屬性。
# 僅安裝插件端 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Agent # 安裝插件端和 jdk 環(huán)境 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Agent jdk # ubuntu apt install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Agent jdk
啟動成功后,插件端的端口為 2123,插件端提供給服務(wù)端使用。
方式二:容器化安裝
注意:容器化安裝方式需要先安裝 docker,點(diǎn)擊跳轉(zhuǎn)docker安裝文檔
使用掛載方式存儲相關(guān)數(shù)據(jù)(在部分環(huán)境可能出現(xiàn)兼容性問題)
docker pull jpomdocker/jpom mkdir -p /home/jpom-server/log mkdir -p /home/jpom-server/data docker run -d -p 2122:2122 \ --name jpom-server \ -v /home/jpom-server/log:/usr/local/jpom-server/log \ -v /home/jpom-server/data:/usr/local/jpom-server/data \ jpomdocker/jpom
使用容器卷方式存儲相關(guān)數(shù)據(jù)
docker pull jpomdocker/jpom docker volume create jpom-server-data docker volume create jpom-server-log docker run -d -p 2122:2122 \ --name jpom-server \ -v jpom-server-data:/usr/local/jpom-server/data \ -v jpom-server-log:/usr/local/jpom-server/log \ jpomdocker/jpom
容器化安裝僅提供服務(wù)端版。由于容器和宿主機(jī)環(huán)境隔離,而導(dǎo)致插件端的很多功能無法正常使用,因此對插件端容器化意義不大。
安裝docker、配置鏡像、自動啟動、查找安裝后所在目錄等可參考文檔 https://jpom.top/pages/b63dc5/
方式三:下載安裝
- 下載安裝包 https://jpom.top/pages/all-downloads/
- 解壓文件
- 安裝插件端
- agent-x.x.x-release 目錄為插件端的全部安裝文件
- 上傳到對應(yīng)服務(wù)器(整個(gè)目錄)
- 啟動插件端,Windows 環(huán)境用 bat 腳本,Linux 環(huán)境用 sh 腳本。(如果出現(xiàn)亂碼或者無法正常執(zhí)行,請檢查編碼格式、換行符是否匹配。)
- 插件端默認(rèn)運(yùn)行端口:
2123
- 安裝服務(wù)端
- server-x.x.x-release 目錄為服務(wù)端的全部安裝文件
- 上傳到對應(yīng)服務(wù)器(整個(gè)目錄)
- 啟動服務(wù)端,Windows 環(huán)境用 bat 腳本,Linux 環(huán)境用 sh 腳本。(如果出現(xiàn)亂碼或者無法正常執(zhí)行,請檢查編碼格式、換行符是否匹配。)
- 服務(wù)端默認(rèn)運(yùn)行端口:
2122,訪問管理頁面:http://127.0.0.1:2122/(非本機(jī)訪問把 127.0.0.1 換成你的服務(wù)器 IP 地址)
方式四:編譯安裝
- 訪問 Jpom 的碼云主頁,拉取最新完整代碼(建議使用 master 分支)
- 切換到
web-vue目錄,執(zhí)行npm install(vue 環(huán)境需要提前搭建和安裝依賴包詳情可以查看 web-vue 目錄下 README.md) - 執(zhí)行
npm run build進(jìn)行 vue 項(xiàng)目打包 - 切換到項(xiàng)目根目錄執(zhí)行:
mvn clean package - 安裝插件端
- 查看插件端安裝包 modules/agent/target/agent-x.x.x-release
- 打包上傳服務(wù)器運(yùn)行(整個(gè)目錄)
- 啟動插件端,Windows 環(huán)境用 bat 腳本,Linux 環(huán)境用 sh 腳本。(如果出現(xiàn)亂碼或者無法正常執(zhí)行,請檢查編碼格式、換行符是否匹配。)
- 默認(rèn)運(yùn)行端口:
2123
- 安裝服務(wù)端
- 查看插件端安裝包 modules/server/target/server-x.x.x-release
- 打包上傳服務(wù)器運(yùn)行(整個(gè)目錄)
- 啟動服務(wù)端,Windows 環(huán)境用 bat 腳本,Linux 環(huán)境用 sh 腳本。(如果出現(xiàn)亂碼或者無法正常執(zhí)行,請檢查編碼格式、換行符是否匹配。)
- 服務(wù)端默認(rèn)運(yùn)行端口:
2122,訪問管理頁面:http://127.0.0.1:2122/(非本機(jī)訪問把 127.0.0.1 換成你的服務(wù)器 IP 地址)
也可以使用
script/release.bat或script/release.sh快速打包。
方式五:一鍵啟動 docker-compose
- 無需安裝任何環(huán)境,自動編譯構(gòu)建
需要注意修改
.env文件中的 token 值
yum install -y git git clone https://gitee.com/dromara/Jpom.git cd Jpom docker-compose up
方式六:編譯運(yùn)行
- 訪問 Jpom 的碼云主頁,拉取最新完整代碼(建議使用 master 分支,如果想體驗(yàn)新功能可以使用 dev 分支)
- 運(yùn)行插件端
- 運(yùn)行
io.jpom.JpomAgentApplication - 留意控制臺打印的默認(rèn)賬號密碼信息
- 插件端默認(rèn)運(yùn)行端口:
2123
- 運(yùn)行
- 運(yùn)行服務(wù)端
- 運(yùn)行
io.jpom.JpomServerApplication - 服務(wù)端默認(rèn)運(yùn)行端口:
2122
- 運(yùn)行
- 構(gòu)建 vue 頁面,切換到
web-vue目錄(前提需要本地開發(fā)環(huán)境有 node、npm 環(huán)境) - 安裝項(xiàng)目 vue 依賴,控制臺執(zhí)行
npm install - 啟動開發(fā)模式,控制臺執(zhí)行
npm run serve - 根據(jù)控制臺輸出的地址訪問前端頁面:
http://127.0.0.1:3000/(非本機(jī)訪問把 127.0.0.1 換成你的服務(wù)器 IP 地址)
管理 Jpom 命令
- Windows 系統(tǒng)使用 bat 腳本文件。
# 服務(wù)端管理腳本,按照面板提示輸入操作 Server.bat # 插件端管理腳本,按照面板提示輸入操作 Agent.bat
Windows 系統(tǒng)中執(zhí)行啟動后需要根據(jù)日志去跟進(jìn)啟動的狀態(tài),如果出現(xiàn)亂碼請檢查或者修改編碼格式,Windows 系統(tǒng)中 bat 編碼格式推薦為
GB2312
- Linux 系統(tǒng)中使用 sh 腳本文件。
# 服務(wù)端 Server.sh start 啟動Jpom服務(wù)端 Server.sh stop 停止Jpom服務(wù)端 Server.sh restart 重啟Jpom服務(wù)端 Server.sh status 查看Jpom服務(wù)端運(yùn)行狀態(tài) Server.sh create 創(chuàng)建Jpom服務(wù)端的應(yīng)用服務(wù)(jpom-server) # 插件端 Agent.sh start 啟動Jpom插件端 Agent.sh stop 停止Jpom插件端 Agent.sh restart 重啟Jpom插件端 Agent.sh status 查看Jpom插件端運(yùn)行狀態(tài) Agent.sh create 創(chuàng)建Jpom插件端的應(yīng)用服務(wù)(jpom-agent)
Linux 服務(wù)方式管理
這里安裝服務(wù)僅供參考,實(shí)際中可以根據(jù)需求自定義配置
在使用
Server.sh create/Agent.sh create成功后service jpom-server {status | start | stop}
service jpom-agent {status | start | stop}
Jpom 的參數(shù)配置
在項(xiàng)目運(yùn)行的根路徑下的 extConfig.yml 文件
- 插件端示例:
extConfig.yml - 服務(wù)端示例:
extConfig.yml
演示項(xiàng)目
賬號:demo 密碼:jpom123
演示系統(tǒng)有部分功能做了限制,完整功能請自行部署體驗(yàn)
如果出現(xiàn)登錄不上,請聯(lián)系我們,聯(lián)系方式在最底部
構(gòu)建案例倉庫代碼
nodejs 編譯指定目錄:
yarn --cwd xxxx/ install yarn --cwd xxxx/ build
maven 編譯指定目錄:
mvn -f xxxx/pom.xml clean package
