Ubuntu安裝jenkins完成自動化構建詳細步驟
前言
本篇文章介紹Ubuntu系統(tǒng)中安裝jenkins,并使用jenkins完成自動化構建。
Jenkins自動構建部署流程通過git拉取代碼,然后用maven打包成jar包,然后通過docker完成項目部署。這里的服務器需要安裝jdk(openjdk也行),maven,git,docker,mysql,其他中間件(redis,mq等)。
1.maven安裝
Ubuntu的包管理工具是apt,不同操作系統(tǒng)的包管理工具不同,這里使用對應的管理工具進行安裝,我這里是Ubuntu,使用apt
# 1. 更新包索引
sudo apt update
# 2. 安裝maven
sudo apt install maven
# 3. 驗證是否安裝成功
mvn -version
# 4. 環(huán)境變量配置
export MAVEN_HOME=/usr/share/maven
export PATH=${MAVEN_HOME}/bin:${PATH}
# 5. 環(huán)境變量更新
source ~/.bashrc
# 6.驗證環(huán)境變量是否配置成功
echo MAVEN_HOME
echo PATH
## 看到輸出東西就證明成功了
2. jenkins安裝
這里我的安裝過程有點崎嶇,我這就放兩種方式吧。但是前提都是確保你的服務器安裝了jdk或者openjdk
(1)apt方式安裝
# 1. 更新包索引 sudo apt update # 2. 添加jenkins GPG密鑰 wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - # 進行第二步的時候可能報錯 “gpg: no valid OpenPGP data found” ,是wget命令版本過舊問題,這里用下面命令即可 wget --no-check-certificate -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - # 3. 將jenkins存儲庫添加到系統(tǒng) sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' # 4. 更新包索引 sudo apt update # 5. 安裝jenkins sudo apt install jenkins # 6. 啟動jenkins sudo systemctl start jenkins ## 啟動jenkins后可以使用下面命令查看 sudo systemctl status jenkins # 查看運行狀態(tài) lsof -i:8080 # jenkins默認端口是8080,查看端口運行狀態(tài)
(2)war包方式
我這里使用前面的apt方式,安裝jenkins一直失敗不成功,解決一個問題又有新的問題,這里我又通過war包方式安裝(這里我也不知道這個方式需不需要基于前面的步驟,我這直接下載war后,就成功了)
# 1. 下載jenkins的war包 # 1.1 這是下載最新版的jenkins,但是最新版的jenkins需要jdk11以上版本 wget http://updates.jenkins-ci.org/latest/jenkins.war # 1.2 我這里是jdk8版本,所以下載2.346版本的jenkins wget https://get.jenkins.io/war-stable/2.346/jenkins.war # 2. 到war包目錄下,啟動war包就行了,使用java -jar nohup java -jar jenkins.war > jenkins.log & ## 這里使用nohup + & 后臺啟動war包,將jenkins日志輸出到jenkins.log中
(3)jenkins啟動
啟動jenkins后,可以通過lsof命令查看端口占用來看jenkins是否啟動成功,啟動成功后,日志會有個密碼,初次登陸jenkins使用這個密碼。

登陸成功后,安裝推薦插件

首次安裝,可能會像我這樣出現(xiàn)很多錯誤,這是由于網(wǎng)絡原因,我們給jenkins配置一個國內(nèi)鏡像重啟一下就行了。

找到配置文件的位置,使用文本編輯器修改配置文件的鏡像
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json



進入這個界面,jenkins就安裝完成了。
3.jenkins配置完成自動化 構建
新建任務,選擇構建一個maven項目

在源碼管理填入自己的git倉庫地址,然后在下面選擇賬號,新安裝的Jenkins沒有賬號,這里可以新增一個(注意:這里填的git賬號需要保證可以拉取到這個git項目)

選擇執(zhí)行shell腳本,輸入需要執(zhí)行的shell
# $WORKSPACE這個會自動找到Jenkins的工作目錄 ls $WORKSPACE/target # 我這里將Jenkins目錄下打包的項目jar包,復制到制定目錄并重命名為demo.jar cp $WORKSPACE/target/rabbitmq.jar /data/rabbimq/demo.jar # 切換到jar所在目錄,然后執(zhí)行目錄下的start.sh腳本 cd /data/rabbimq sh start.sh

這里看一下jar所在目錄下的文件

Dockerfile為構建docker鏡像使用
FROM openjdk:8-jre WORKDIR / ADD /demo.jar /demo.jar EXPOSE 9000 ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","demo.jar"]
start.sh作用:
創(chuàng)建需要的相關路徑,停止容器,刪除容器,刪除鏡像,重新構建鏡像,啟動項目,具體如下:
# 定義變量(后面通過$變量名使用)
dir=/data/rabbimq
name=demo
logs=/data/rabbimq/logs
port=9000
temp=/data/rabbimq/temp
if [ ! -d "$dir" ];then
mkdir -p $dir
else
echo "文件夾已經(jīng)存在"
fi
if [ ! -d "$logs" ];then
mkdir -p $logs
fi
date=`date +%Y%m%d%H%M%S`
# 停止容器(按照容器id停止)
docker stop `docker ps -a|grep $name|awk '{print $1}'`
# 刪除容器(按照容器id刪除)
docker rm `docker ps -a|grep $name|awk '{print $1}'`
# 刪除鏡像
docker rmi `docker images|grep $name|awk '{print $1}'`:`docker images|grep $name|awk '{print $2}'`
# 構建鏡像(名稱為名字加當前時間,可以防止鏡像名稱重復)
docker build -t $name:$date .
# 啟動鏡像,掛載需要的目錄
docker run -itd -p $port:$port -v $logs:/logs -v $temp:/temp --name $name $name:$date bash
這些做完后,點擊立即構建就可以完成Jenkins自動構建部署了。
4.測試
編寫一個測試接口
@Api(tags = "jenkins測試")
@RestController
@RequestMapping("/test/jenkins")
public class JenkinsTest {
@GetMapping("/print")
@ApiOperation("輸出")
public Result test(@RequestParam String text) {
return Result.success("Jenkins接收到參數(shù):" + text);
}
}
提交到git

點擊立即構建,等待完成,查看構建日志,可以看到是拉取到的我剛剛提交的最新代碼。

完成后,訪問我的swagger地址,可以看到剛剛新寫的接口已經(jīng)部署上去了,為最新的代碼,查看服務器docker容器,也正在運行,到此就說明成功。


總結
到此這篇關于Ubuntu安裝jenkins完成自動化構建的文章就介紹到這了,更多相關Ubuntu安裝jenkins自動化構建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IDEA快速搭建spring?boot項目教程(Spring?initializr)
這篇文章主要介紹了IDEA快速搭建spring?boot項目教程(Spring?initializr),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java多線程實現(xiàn)模擬12306火車站售票系統(tǒng)
12360火車票售票系統(tǒng)基本上大家都用過,那你知道是怎么實現(xiàn)的嗎,今天我們就模擬12306火車站售票系統(tǒng)來實現(xiàn),需要的朋友們下面隨著小編來一起學習學習吧2021-05-05
ConcurrentHashMap線程安全及實現(xiàn)原理實例解析
這篇文章主要介紹了ConcurrentHashMap線程安全及實現(xiàn)原理實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
SpringBoot整合BCrypt實現(xiàn)密碼加密
這篇文章主要為大家詳細介紹了SpringBoot整合BCrypt進行密碼加密,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Java中get/post的https請求忽略ssl證書認證淺析
因為Java在安裝的時候,會默認導入某些根證書,所以有些網(wǎng)站不導入證書,也可以使用Java進行訪問,這篇文章主要給大家介紹了關于Java中get/post的https請求忽略ssl證書認證的相關資料,需要的朋友可以參考下2024-01-01

