1. 程式人生 > 其它 >🏆(不要錯過!)【CI/CD技術專題】「Jenkins實戰系列」(5)總結歸納Jenkins的安裝使用和配置流程介紹

🏆(不要錯過!)【CI/CD技術專題】「Jenkins實戰系列」(5)總結歸納Jenkins的安裝使用和配置流程介紹

Jenkins基礎介紹篇

  • Jenkins是一個開源軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重複的工作,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。
  • 通過Jenkins實現自動化部署專案,本地git提交程式碼Jenkins自動化將專案部署在Linux伺服器。

Jenkins技術原理篇

  • 版本控制服務

  • Jenkins自動化部署服務

Jenkins環境搭建篇

  • 如果使用Jenkins容器,我該怎麼通過Jenkins容器部署SpringBoot專案?
  • 是通過Jenkins容器與SpringBoot容器中的檔案互動進行專案部署嗎?這能做到嗎?
  • 又或是把SpringBoot專案放到Jenkins容器中管理,那Jenkins中又要安裝git、maven等一堆東西,這一點都不方便。

jenkins映象

元件部署規劃

  • Jenkins:接收專案更新資訊並進行專案打包與Docker指令碼的執行

  • Docker:安裝所需應用映象與執行容器(本篇忽略)

  • git:專案資訊同步

環境搭建

安裝JDK
將下載完的jdk解壓
tar -zxvf jdk-8u191-linux-x64.tar.gz
在/etc/profile檔案末尾增加以下配置
vim /etc/profile 
export JAVA_HOME=/home/jenkins/globalEnvi/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
更新配置檔案
source /etc/profile
檢視版本資訊
[root@libo tyes]# java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_321-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
安裝Maven
下載maven並解壓
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
tar -zxvf apache-maven-3.6.0-bin.tar.gz
修改maven的遠端映象為阿里雲映象庫
vim conf/setting.xml
    ...
       <mirror>  
          <id>nexus-aliyun</id>  
          <mirrorOf>central</mirrorOf>    
          <name>Nexus aliyun</name>  
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
      </mirror>
...
在/etc/profile檔案末尾增加以下配置
vim /etc/profile 
#注意這裡是maven的安裝路徑 
M2_HOME=/home/jenkins/globalEnvi/apache-maven-3.6.0   
過載/etc/profile這個檔案 source /etc/profile
export PATH=${M2_HOME}/bin:${PATH}
檢視是否maven環境變數

[root@libo tyes ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /home/zhangsha/apache-maven-3.6.3 Java version: 1.8.0_261, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_261-amd64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-1127.18.2.el7.x86_64", arch: "amd64", family: "unix"****

安裝git
安裝依賴
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker

下載git之後

檢視版本
[root@libo tyes]# git --version
 git version 2.28.0 
  • 安裝Jenkins
    • 下載安裝包jenkins.war;
       - 在安裝包根路徑下,執行命令 `java -jar jenkins.war --httpPort=8080
    • 開啟瀏覽器進入連結 http://localhost:8080.
    • 填寫初始密碼,啟用系統

首次啟動會提示初始密碼位置,找到初始密碼:

[root@libo tyes]# cat /var/jenkins_home/secrets/initialAdminPassword
9e3a37cf78264798878606621db632d3

推薦安裝的外掛,保證基本常用的功能可以使用。

  • 安裝需要的外掛

  • 外掛安裝介面

全域性化配置

在jenkins頁面“系統管理”-->“管理外掛”-->”全域性工具配置”:

  • 配置相關Maven的settings配置檔案路徑

  • 配置相關Maven的安裝home目錄資訊

  • 配置相關的JDK的相關的目錄資訊

  • 配置相關GIT的安裝home目錄資訊

注意:可能各種原因,外掛安裝失敗,則跳過也可以,再登入到Jenkins之後可以對外掛進行自定義選擇性安裝。

  • 設定初始使用者和密碼

  • 登入賬號密碼之後,進入系統,安裝完成。(如果錄入賬號密碼登入遇到空白頁,重啟jenkins服務在嘗試重新登入)

在jenkins頁面“系統管理”-->“外掛管理”-->"可選外掛"中搜索:

在外掛管理頁面可以對外掛進行安裝、解除安裝、更新。(各個外掛的版本和Jenkins版本有時候會有相容性問題,可以進行更新或者降級)



  • Maven外掛(必須)Maven Integration 用來支援構建maven專案

  • 遠端連線服務外掛(必須):Publish Over SSH 用來把構建好的部署包傳送到指定伺服器的指定位置

  • GitLab、Gitlab Authentication、Gitlab Hook來獲取倉庫原始碼

  • 釋出外掛(必須):Deploy to container Plugin

  • git外掛: Git plugin(git和svn根據自身需求)

在jenkins頁面“系統管理”-->“系統設定”:

  • (Publish over SSH外掛配置)新增SSH Servers(可使用金鑰,也可以使用密碼)

Jenkins構建任務篇

首頁-新建任務

填寫任務名稱,選擇“構建一個Maven的軟體專案”。

.配置原始碼管理

填寫git地址操作

  • 若是需要認證,則新增憑據即可
構建環境
構建
配置構建命令
配置構建後釋出
填寫執行命令
#!/bin/sh
#docker 映象/容器名字或者jar名字 這裡都命名為這個
SERVER_NAME=logistics
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#映象id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
#當前日期
DATE=`date +%Y%m%d`

#清除舊容器
if [ -n "$CID" ]; then
echo "存在$SERVER_NAME容器,CID=$CID"
echo "停止舊容器"
docker stop $SERVER_NAME
echo "刪除舊容器"
docker rm $SERVER_NAME
fi

# 清楚舊映象
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME映象,IID=$IID"
echo "刪除映象"
docker rmi $IID
fi

#構建映象
echo "開始構建映象"
docker build -f ./src/main/docker/Dockerfile -t $SERVER_NAME:v${DATE} ./target
echo "構建映象成功!"


# 執行docker容器
echo "建立並啟動$SERVER_NAME容器..."
docker run --name $SERVER_NAME -d -p 8071:8071 $SERVER_NAME:v${DATE}
echo "$SERVER_NAME容器啟動完成

立即構建

Jenkins部署流程篇

  1. 開發使用者提交程式碼到Git原始碼倉庫

  2. Jenkins伺服器從指定Git倉庫拉去程式碼,使用maven編譯打包。

  3. Jenkins伺服器通過ssh外掛連線登入伺服器,將打包好的war或者jar包傳送到應用伺服器指定位置,例如 home/web/a.war

  4. Jenkins伺服器在應用伺服器遠端執行指令碼檔案,重啟應用伺服器tomcat 或者在應用伺服器執行 java -jar 啟動當前專案。

極限就是為了超越而存在的