尚硅谷jenkins
p1 教程簡介
p2 jenkins在開發中的位置和作用
p3 jenkins+maven+git持續集成基礎使用
三臺服務器
p5 gitlab安裝準備
p6 gitlab在ssh下安裝
訪問ip即可登陸,記得關防火墻
p07 docker下安裝gitlab
p9 jenkins安裝
下載war包 然后 java -jar jenkins.war 啟動,即可訪問jenkins
安裝maven
這里安裝的maven的jdk有坑,其實是jre
p10 jenkins配置maven+git自動構建jar包
安裝maven插件
新建item
項目配置
在jenkins這臺服務器上下載git,上面這個就不會報錯了
拉取分支設置
需要告訴jenkins maven安裝在哪里
全局工具設置
設置完后繼續返回設置我們的item
pom目錄位置需要和我們的gitlab一樣
構建項目
安裝完成后, 測試運行maven打包
測試運行編譯打包后的jar包,成功運行了!
p11 自動化發布到測試服務器并自動運行
先配置測試服務器
配置完成之后,項目這里就可以選擇測試服務器了
jenkins服務器上面構建好的jar包
再次構建,運行并傳輸成功了
目標服務器就收到jar包了
上面既然已經把jar傳到測試服務器了,可以再執行命令,把jar包啟動起來!
p12 ssh publishers 超時機制
上面的操作有2個問題:
1:之前的jar包服務沒有先停止,再次構建時候會有問題
2:沒有指定日志輸出,可能也會導致卡住
針對問題2措施:
nohup java -jar /root/xxoo/testJenkins*.jar >mylog.log 2>&1 &
針對問題1 可以構建前執行腳本
p14 構建前置腳本
#! /bin/bash echo "start..." rm -rf xxoo echo '刪除xxoo成功' #獲取傳入的參數 appname=$1 echo "arg:$appname" # awk 處理文本輸出第2列進程 pid=`ps -ef |grep $appname| grep 'java -jar'|awk '{printf $2}'` echo "進程為:$pid" #如果pid為空,提示一下,否則,執行kill命令 if [ -z $pid ];thenecho "$appname not started"elsekill -9 $pidecho "$appname stoping..."# 再次查找是否成功關閉進程 -w精確查找check=`ps -ef|grep -w $pid|grep java`if [ -z $check ];thenecho "$appname is stop"else echo "$appname stop failed"fi fip15 代碼提交測試
界面上執行腳本加上項目參數
手動構建成功
p16 gitlab自動構建項目
下載免登錄插件,用token構建
安裝插件后訪問地址,輸入jenkins項目名和token ,即可觸發構建
在gitlab中配置鉤子
觸發事件設置:
勾選[合并請求事件觸發]時,當創建合并請求和正真合并都會觸發!更新或提交時就觸發時 太消耗資源,不建議勾選
這里的事件都不太好用,建議在jenkins中手動構建或者定時構建
設置網絡允許調用
p17 幾種常用的構建觸發器
p19 poll scm觸發構建
和前面不同,相反 jenkins定時去訪問gitlab觸發構建,需要設置cron表達式
p20 配置郵箱接收構建通知
配置163郵箱為發件人
p 21容器化構建的幾種方式
p22 docker jar文件打包到鏡像中
使用第二種
準備一臺測試服務器 裝有docker環境 這里我們使用之前安裝docker版gitlab的這臺服務器 192.168.56.129
準備jar包
準備dockerfile,里面包含了拉取jdk,結合jar包,打包成新的鏡像,然后生成容器運行
使用dockerfile構建鏡像
配置國內鏡像加速
修改/etc/docker/daemon.json文件,沒有的話創建一個
寫入
{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://registry.aliyuncs.com"] }重啟服務
systemctl daemon-reload systemctl restart docker構建之后,看到多出了2個鏡像一個是拉取的jdk,一個是我們要運行的鏡像
運行我們的鏡像
容器啟動就可以訪問jar包的項目了
p23 使用外部jar包完成自動化部署
使用第一種
使用了jdk鏡像運行容器,掛載jar包目錄,也可以直接訪問
docker run -d -p 8080:8080 --name testJenkins-out -v /root/jarfile/testJenkins-1.0-SNAPSHOT.jar:/app.jar openjdk:11 java -jar app.jar
為了自動部署,需要自動刪除服務器舊的jar包,停止容器,重新生成jar包,把jar包推送至測試服務器,重新啟動容器
修改測試服務器ip
p24 鏡像方式自動化部署
上面的第二種,如何自動化部署
代碼中有dockerfile
p 25jenkins集群并發構建
添加從節點
總結
以上是生活随笔為你收集整理的尚硅谷jenkins的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSON for modern c++
- 下一篇: 科研人必备论文小技巧——word分分钟自