天天看點

jenkins自動部署一.操作環境準備

(此文章為Jenkins學習總結,如有錯誤敬請指出,感激不盡)

一.操作環境準備

注意:Jenkins要選2.3以上版本,因Jenkins内部很多插件不再支援低版本,相應的,2.3以後不再支援jdk1.8,在操作環境的選取上要注意。

0.實作思路:

代碼推送到gitee倉庫,觸發Jenkins自動建構項目,Jenkins從代碼倉庫拉取最新代碼進行打包部署

1.CentOS

虛拟機環境準備,這裡本人用的centos7

2.jdk

由于各種原因,使用jdk11

1).在虛拟機中建立檔案夾/home/jdk,并上傳jdk包,使用 tar -zxvf 指令解壓

tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz      

得到 jdk-11.0.17 檔案夾

2).修改 /etc/profile 檔案;使用指令 vi /etc/profile,進入檔案,修改環境變量

# java配置
export JAVA_HOME=/home/jdk/jdk-11.0.17
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/bin      

esc + : + wq +enter 儲存編輯之後的檔案

3).重新整理檔案使之生效

source /etc/profile      

4).檢視目前jdk環境 java -version

jenkins自動部署一.操作環境準備

看到java版本即可

2.git

由于項目是gitee項目,在系統上不做配置,稍後在Jenkins上配置

3.maven

1).在虛拟機中建立檔案夾/home/maven及maven倉庫/home/maven/repo,下載下傳解壓

tar -zxvf  apache-maven-3.8.7-bin.tar.gz       

得到apache-maven-3.8.7 檔案夾

2).修改 /etc/profile 檔案,添加環境變量

#maven 配置
export MAVEN_HOME=/home/maven/apache-maven-3.8.7
export PATH=$MAVEN_HOME/bin:$PATH      

3).重新整理配置檔案

4).檢視目前maven環境 mvn -version

jenkins自動部署一.操作環境準備

 看到maven 版本

二.Jenkins的安裝與配置

1.jenkins下載下傳安裝

1.下載下傳

wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.375.2-1.1.noarch.rpm      

2.安裝

yum install jenkins      

3.修改配置檔案: vi /etc/init.d/jenkins ,将jdk換成剛才下載下傳的

jenkins自動部署一.操作環境準備

 4.修改jenkins的鏡像位址,和插件下載下傳位址,否則在頁面通路将會很慢,插件下載下傳也可能失敗

1).修改/var/lib/jenkins/hudson.model.UpdateCenter.xml

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json      

 2).修改插件下載下傳位址:

sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json      

2.啟動

1.開啟/關閉服務

systemctl start jenkins      
systemctl stop jenkins      

開啟後可以檢視jenkins的目前狀态

systemctl status jenkins      

當看到如圖狀态,表示服務已開啟

jenkins自動部署一.操作環境準備

 2.關閉防火牆,使浏覽器可以通路jenkins首頁

systemctl stop firewalld      

3.分布式項目需要配置hosts檔案各服務位址,linux系統下hosts檔案配置:

vi /etc/hosts      

如:

jenkins自動部署一.操作環境準備

 4.有些jar包可能線上上倉庫沒有,需要手動打進本地maven倉庫

jenkins自動部署一.操作環境準備

 其中: -Dfile: 對于你的jar包的位置 -DgroupId -DartifactId -Dversion三個參數分别對于pom.xml檔案中的配置參數選項:如下所示:

<dependency> <groupId>com.test.gmssl</groupId> <artifactId>gmssl-demo</artifactId> <version>1.0</version> </dependency>

jar包打入成功:

jenkins自動部署一.操作環境準備

3.通路

浏覽器通路:ip+端口号(linux檢視ip位址: ip addr ,端口預設8080)

jenkins自動部署一.操作環境準備

 第一次通路的時候需要解鎖,在虛拟機内輸入該位址以擷取管理者密碼

jenkins自動部署一.操作環境準備

 在選擇插件安裝直接選擇推薦,快速進入

jenkins自動部署一.操作環境準備

 注:初次啟動在沒有修改jenkins鏡像位址的情況下會安裝失敗,如圖

jenkins自動部署一.操作環境準備

 else 正常下載下傳:

jenkins自動部署一.操作環境準備

 進入首頁之後提示建立第一個使用者:

jenkins自動部署一.操作環境準備

 完成之後進入首頁,配置全局jdk和maven環境

maven:

jenkins自動部署一.操作環境準備
jenkins自動部署一.操作環境準備

 jdk:

jenkins自動部署一.操作環境準備

 在插件裡面去安裝gitee plugin:為代碼倉庫拉取最新代碼做準備

在插件倉庫去安裝publish over ssh:在jenkins項目編譯後将使用其部署到伺服器

三.項目實戰

1.建立一個項目,開始配置,因為我們的項目是一個maven項目,是以直接選maven,在運用熟悉後可以選第一個高自由度的自由風格

jenkins自動部署一.操作環境準備

源碼管理:選擇代碼來源,代碼所在倉庫位址,配置git賬号密碼

jenkins自動部署一.操作環境準備

建構觸發器:這裡是配置觸發代碼建構的條件,我們可以手動建構,也可以當代碼倉庫發生改變時自動建構

jenkins自動部署一.操作環境準備
jenkins自動部署一.操作環境準備

 注意紅框中的伺服器位址,要修改成外網可以通路的url,否則gitee連接配接不上jenkins

webhook密碼是選填項,如果填寫,對應的git倉庫也要填寫

jenkins自動部署一.操作環境準備
jenkins自動部署一.操作環境準備

post step:項目部署設定子產品

jenkins自動部署一.操作環境準備

 添加項目啟動腳本

jenkins自動部署一.操作環境準備
jenkins自動部署一.操作環境準備

 點選應用,儲存,設定完成,嘗試建構

檢視控制台,建構情況

jenkins自動部署一.操作環境準備

 此時項目已經部署到伺服器,根據所編寫的腳本伺服器将完成後續操作。

參考腳本:

#!/bin/sh
echo =================================
echo  自動化部署腳本啟動
echo =================================
 
echo 停止原來運作中的工程
APP_NAME1=XXX1#克隆遠端倉庫項目名字
APP_NAME2=XXX2
...
#根據APP_NAME1變量殺程序
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi
#根據APP_NAME2變量殺程序
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi
...
//進入1項目目錄
cd target1/ 
 
echo 啟動1項目
nohup java -jar xxx1.jar &> XXX1.log &#注意,改為自己的.jar包名//進入1項目目錄
​
cd target2/ 
 
echo 啟動2項目
nohup java -jar xxx2.jar &> XXX2.log &
...
echo 項目啟動完成      

嘗試接口通路:

jenkins自動部署一.操作環境準備