jenkins安裝
博主測試項目爲spring cloud,maven構建項目, 選用tags進行構建。 並未進行自動構建。 每次發佈前需要人工打tag,實現不同版本號控制。因遇到過開發人員提交代碼不全面, 導致自動構建失敗。每次打包需要人工進行跟進。
1. 基礎環境安裝
若已存在環境, 可省略此步驟。若是初始機器可參考Centos7 配置基礎JAVA開發環境
2. jenkins下載
作者選擇war包啓動, 選擇原因如下:
1) docker啓動,需要配置jdk, maven, git及後續的node後續擴展會越來越複雜。
2)yum安裝, 時間太久。 可能跟博主網速有關,下載很久,包括後續的插件安裝。
綜上原因選擇war包啓動。
可到jenkins官網進行下載
下載的war包上傳至服務器/opt/jenkins目錄下
編輯啓動腳本, 可自行編輯,開機自啓等其他騷操作。
3. 啓動Jenkins
vim start-jenkins
#! /bin/bash
nohup java -jar jenkins.war --httpPort=8080 &
保存退出 esc :wq
–httpPort 指定端口, 需要注意端口衝突
可用一下命令查看是否端口占用
lsof -i:8080
若lsof命令提示不存在, 使用一下命令進行安裝
yum install lsof -y
修改文件更改爲可執行文件
chmod +x start-jenkins
執行腳本, 啓動jenkins
sh start-jenkins
回車後查看 nohup.out 文件內容
tail -f nohup.out
看到以下內容則啓動成功
訪問jenkins ip:8080
填寫該路徑下的密碼, 或複製nohup.out 最後提示的密碼
可選推薦安裝, 若是有其他插件安裝可選 選擇插件安裝進行自行配置
安裝插件可能會出現錯誤,有以下解決方案
- 刷新頁面, 對安裝失敗的插件再次進行安裝
- 針對安裝失敗的插件,自行下載並上傳
- 站點升級再試
插件安裝完畢, 創建管理員用戶
保存用戶後, 實例配置, 直接點擊保存完成即可
開始使用jenkins
4. 環境進行配置
maven setting.xml配置
選擇文件系統中的settings文件, 填寫服務中maven settings.xml文件所在位置
配置jdk, 填寫服務中jdk所在的安裝目錄
Git配置, 查找git所在安裝目錄, 若是yum安裝, 一般目錄在
whereis git
/usr/bin/git
配置maven, maven所在目錄
點擊保存, jenkins基礎環境配置結束
5. 插件安裝
博主測試打包爲spring cloud項目,選擇maven構建項目, 選擇git參數化構建(使用項目中的tags進行打包構建)
再此處搜索 maven integration (maven構建項目)
git param (參數化構建, 選擇tag)
直接安裝即可
選擇安裝完成重啓jenkins
稍作等待, 等待再次登錄進入jenkins
6. 新建任務
填寫任務名稱, 選擇構建一個maven項目後確定
7. 配置
- General部分, 選擇參數化構建過程, 選擇git參數, 填寫參數名稱, 選擇參數類型
- 源碼管理, 地址輸入, 若無配置ssh, 添加源碼地址登錄用戶
- 構建觸發器, 由於選擇人工介入。取消任何觸發,默認選擇的第一項去除
- Pre Steps 選擇執行shell
shell腳本內容
echo "打包前release=$release"
cd xx-parent
mvn versions:set -DnewVersion=$release
改變當前項目默認版本號
- Build
可選擇高級, 進行參數配置, 優化參數等
- Post Steps
選擇構建成功執行
export release=$release
cd xx-parent
mvn versins:revert
cd ....../docker-compose
docker stack deploy -c docker-compose.yml xx
項目默認版本恢復
跳轉到docker-compose.yml 默認的目錄
docker stack deploy 發佈項目
保存
8. 進行發佈
點擊build with parameters, 可選擇release參數, 點擊開始構建
等待最後發佈, 查看結果。 如果失敗, 情況衆多,請根據具體情況進行分析, 解決錯誤。
查看控制檯輸出, 最後提示SUCCESS即發佈成功,發佈成功不代表能被正常訪問, 還需要進行確認
docker ps -a
docker logs -f containerId
查看該鏡像啓動的容器, 查看日誌是否與本地啓動時過程一致,並正確啓動
其他事項
- 初次執行時間會長一些
- 發現maven相關錯誤, 查看nexus是否正常或setting.xml文件是否正確
- 提示 docker swarm init 等相關, 在docker所在服務器執行 docker swarm init 進行初始化。 如果沒有其他容器編排等, 可搭建docker 集羣。 使用swarm進行管理, 由於博主計劃jenkins與K8S結合使用, 不做docker集羣。
- 發佈過程中, 需要的dockerfile, docker-compose均存在於項目中, 隨項目一同提交。 會在後續文章中進行配置說明。
本文後續會逐漸完善