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