??(不要錯過?。綜I/CD技術專題】「Jenkins實戰(zhàn)系列」(1)全流程介紹Jenkins環(huán)境搭建+基礎部署配置(Windows->Linux)

背景

  • 在實際開發(fā)中,我們經(jīng)常要一邊開發(fā)一邊測試,當然這里說的測試并不是程序員對自己代碼的單元測試,而是同組程序員將代碼提交后,由測試人員測試;
  • 前后端分離后,經(jīng)常會修改接口,然后重新部署;這些情況都會涉及到頻繁的打包部署;

手動打包常規(guī)步驟:

  1. git commit + git push 提交代碼
  2. 問一下同組小伙伴有沒有要提交的代碼
  3. 拉取代碼并打包(war包,或者jar包)
  4. 上傳到Linux服務器
  5. 查看當前程序是否在運行
  6. 關閉當前程序
  7. 啟動新的jar包
  8. 觀察日志看是否啟動成功
  9. 如果有同事說,自己還有代碼沒有提交......再次重復1到8的步驟。

基于以上的痛點,有一種工具能夠實現(xiàn),將代碼提交到git后就自動打包部署勒,答案是肯定的:現(xiàn)在這里主要介紹jenkins

當然除了Jenkins以外,也還有其他的工具可以實現(xiàn)自動化部署,如Hudson、gitlab CI/CD等。只是Jenkins相對來說,使用得更廣泛。

文章結構:

image

Jenkins服務器搭建及基本配置

簡介

Jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。

Jenkins自動化部署實現(xiàn)原理

image

Jenkins部署環(huán)境

基本環(huán)境

  1. jdk環(huán)境,Jenkins是java語言開發(fā)的,因需要jdk環(huán)境。

  2. git/svn客戶端,因一般代碼是放在git/svn服務器上的,我們需要拉取代碼。

  3. maven客戶端,因一般java程序是由maven工程,需要maven打包,當然也有其他打包方式,如:gradle

以上是自動化部署java程序jenkins需要的基本環(huán)境,請自己提前安裝好,下面著重講解Jenkins的安裝部署配置。

Jenkins安裝

  1. 下載安裝包jenkins.war;

  2. 在安裝包根路徑下,運行命令 java -jar jenkins.war --httpPort=8080,(linux環(huán)境、Windows環(huán)境都一樣);

  3. 打開瀏覽器進入鏈接 http://localhost:8080.

  4. 填寫初始密碼,激活系統(tǒng)

image
  1. 進入插件安裝選擇

這里建議選擇,推薦安裝的插件,保證基本常用的功能可以使用。

中文版


image

英文版


image

  1. 選擇后,進入插件安裝頁面
    [圖片上傳失敗...(image-bc838b-1625587098674)]

  2. 設置初始用戶和密碼


    image
  3. 進入系統(tǒng),安裝完成


    image

Jenkins基本配置

系統(tǒng)初始化配置

image
  1. Configure System (系統(tǒng)設置)
  • 在系統(tǒng)設置這里,我們只需要設置最后面的一項,配置遠程服務器地址,

  • 即我們代碼最終運行的服務器地址信息,就像我們之前手動部署時使用xshell登錄Linux服務器一樣,

  • 當然這里是可以配置多臺遠程Linux服務器的,配置完成后點擊保存即可,為后面我們配置自動化部署做準備,配置如下圖

image
  1. Configure Global Security (全局安全配置)

配置用戶相關的權限

image

配置鉤子程序(當用代碼更新時通知)訪問權限,避免報403錯誤

默認是勾選上了的,這里去掉勾選


image
  1. Global Tool Configuration (全局工具配置 )

配置maven的全局settings路徑

image

配置jdk

image

配置git

image

配置maven的安裝路徑

image

配置必要插件

主要是檢查如下這兩個插件是否已安裝

  • 插件1:Publish over SSH
  • 插件2:Deploy to container Plugin
image

Jenkins自動化部署

我們配置一個自動化部署的的java程序(springBoot+maven+gitHub),基本必要配置就差不多了,后面配置過程中如果需要在配置。

Jenkins服務器上創(chuàng)建項目和配置

大體步驟:General(基礎配置)--》源碼管理--》構建觸發(fā)器--》構建環(huán)境--》構建--》構建后操作

  1. 創(chuàng)建一個工程
image
  1. General(基礎配置)

僅需填寫標準部分,其他可不填寫

image
  1. 源碼管理
image

上圖中點擊“添加”按鈕添加一組賬號和密碼

image
  1. 構建觸發(fā)器
image

如上圖:當前項目的回調地址為:

http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2

只要執(zhí)行這個地址(在瀏覽器上訪問改地址),該項目就會發(fā)起一次構建項目,即拉取代碼打包部署操作,在實際中,是由git服務器回調該地址。

  1. 構建環(huán)境(無需配置)

  2. 構建


    image
  3. 構建后操作

    • 構建后操作的意思是,jar打包好后,要將jar發(fā)送到哪里去,發(fā)送后去和啟動等。
    • 這里需要提前在需要部署的服務器上配置好路徑,寫好啟動和停止項目的腳本,并設置為可以執(zhí)行的腳本,
    • 其實就是我們平時在Linux上手動部署項目操作的腳本。
image

案例中給出的start.sh腳本如下:

#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_131
echo ${JAVA_HOME}
echo 'Start the program : demo2-0.0.1-SNAPSHOT.jar'
chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /home/ldp/app/
nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar &
echo 'start success'

案例中給出的stop.sh腳本如下:

#!/bin/bash
echo "Stop Procedure : demo2-0.0.1-SNAPSHOT.jar"
pid=`ps -ef | grep java | grep demo2-0.0.1-SNAPSHOT.jar | awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi

Linux服務器配置

在Linux 服務上,上傳上文中的兩個腳本,用于啟動和停止

image

GitHub服務器配置

在GitHub服務器上的指定項目里面配置上文中提到的回調地址

特別注意:為了保證回調地址網(wǎng)可以使用,

所以,下面配置的是外網(wǎng)映射地址。

image

可以參考:官方文檔

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容