??(不要錯過?。綜I/CD技術(shù)專題】「Jenkins實戰(zhàn)系列」(5)總結(jié)歸納Jenkins的安裝使用和配置流程介紹

Jenkins基礎(chǔ)介紹篇

  • Jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。
  • 通過Jenkins實現(xiàn)自動化部署項目,本地git提交代碼Jenkins自動化將項目部署在Linux服務(wù)器。

Jenkins技術(shù)原理篇

  • 版本控制服務(wù)

  • Jenkins自動化部署服務(wù)

image

Jenkins環(huán)境搭建篇

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

jenkins鏡像

image

組件部署規(guī)劃

  • Jenkins:接收項目更新信息并進行項目打包與Docker腳本的執(zhí)行

  • Docker:安裝所需應(yīng)用鏡像與運行容器(本篇忽略)

  • git:項目信息同步

環(huán)境搭建

安裝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的遠(yuǎn)程鏡像為阿里云鏡像庫
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環(huán)境變量

[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.
    • 填寫初始密碼,激活系統(tǒng)


      image

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

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

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

  • 安裝需要的插件


    image
  • 插件安裝界面


    image

全局化配置

在jenkins頁面“系統(tǒng)管理”-->“管理插件”-->”全局工具配置”:

image

  • 配置相關(guān)Maven的settings配置文件路徑


    image
  • 配置相關(guān)Maven的安裝home目錄信息


    image
  • 配置相關(guān)的JDK的相關(guān)的目錄信息


    image
  • 配置相關(guān)GIT的安裝home目錄信息


    image

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

  • 設(shè)置初始用戶和密碼


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

image
在jenkins頁面“系統(tǒng)管理”-->“插件管理”-->"可選插件"中搜索:

在插件管理頁面可以對插件進行安裝、卸載、更新。(各個插件的版本和Jenkins版本有時候會有兼容性問題,可以進行更新或者降級)

image

image

  • Maven插件(必須)Maven Integration 用來支持構(gòu)建maven項目

  • 遠(yuǎn)程連接服務(wù)插件(必須):Publish Over SSH 用來把構(gòu)建好的部署包傳送到指定服務(wù)器的指定位置

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

  • 發(fā)布插件(必須):Deploy to container Plugin

  • git插件: Git plugin(git和svn根據(jù)自身需求)

在jenkins頁面“系統(tǒng)管理”-->“系統(tǒng)設(shè)置”:

  • (Publish over SSH插件配置)添加SSH Servers(可使用密鑰,也可以使用密碼)
image

Jenkins構(gòu)建任務(wù)篇

首頁-新建任務(wù)

填寫任務(wù)名稱,選擇“構(gòu)建一個Maven的軟件項目”。

image
.配置源碼管理

填寫git地址操作


image
  • 若是需要認(rèn)證,則添加憑據(jù)即可


    image
構(gòu)建環(huán)境
image
構(gòu)建
image
配置構(gòu)建命令
image
配置構(gòu)建后發(fā)布
image
填寫執(zhí)行命令
#!/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}')
#當(dāng)前日期
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

#構(gòu)建鏡像
echo "開始構(gòu)建鏡像"
docker build -f ./src/main/docker/Dockerfile -t $SERVER_NAME:v${DATE} ./target
echo "構(gòu)建鏡像成功!"


# 運行docker容器
echo "創(chuàng)建并啟動$SERVER_NAME容器..."
docker run --name $SERVER_NAME -d -p 8071:8071 $SERVER_NAME:v${DATE}
echo "$SERVER_NAME容器啟動完成

立即構(gòu)建

image

Jenkins部署流程篇

  1. 開發(fā)用戶提交代碼到Git源碼倉庫

  2. Jenkins服務(wù)器從指定Git倉庫拉去代碼,使用maven編譯打包。

  3. Jenkins服務(wù)器通過ssh插件連接登錄服務(wù)器,將打包好的war或者jar包傳送到應(yīng)用服務(wù)器指定位置,例如 home/web/a.war

  4. Jenkins服務(wù)器在應(yīng)用服務(wù)器遠(yuǎn)程執(zhí)行腳本文件,重啟應(yīng)用服務(wù)器tomcat 或者在應(yīng)用服務(wù)器執(zhí)行 java -jar 啟動當(dāng)前項目。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容