<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          實用的Jenkins自動化部署詳細教程

          共 3899字,需瀏覽 8分鐘

           ·

          2022-01-12 18:57


          1.背景

            在實際開發(fā)中,我們經(jīng)常要一邊開發(fā)一邊測試,當然這里說的測試并不是程序員對自己代碼的單元測試,而是同組程序員將代碼提交后,由測試人員測試;

            或者前后端分離后,經(jīng)常會修改接口,然后重新部署;

            這些情況都會涉及到頻繁的打包部署;

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

            1.提交代碼

            2.問一下同組小伙伴有沒有要提交的代碼

            3.拉取代碼并打包(war包,或者jar包)

            4.上傳到Linux服務器

            5.查看當前程序是否在運行

            6.關(guān)閉當前程序

            7.啟動新的jar包

            8.觀察日志看是否啟動成功

            9.如果有同事說,自己還有代碼沒有提交......再次重復1到8的步驟!!!!!(一上午沒了)

            那么,有一種工具能夠?qū)崿F(xiàn),將代碼提交到git后就自動打包部署勒,答案是肯定的:Jenkins

            當然除了Jenkins以外,也還有其他的工具可以實現(xiàn)自動化部署,如Hudson等

            只是Jenkins相對來說,使用得更廣泛。

          2.Jenkins服務器搭建及基本配置

          2.1.簡介

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

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

            

          2.3.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的安裝部署配置。

          2.4.Jenkins安裝

            1.下載安裝包jenkins.war;

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

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

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

            

            5.進入插件安裝選擇

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

            

            選擇后,進入插件安裝頁面

            

            6.設置初始用戶和密碼

            

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

            注意,如果還是進入不了系統(tǒng),需要稍等一下,或者刷新頁面,如果還是進入不了,需要重新啟動jenkinds服務器。

          2.5.Jenkins基本配置

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

            

            1.ConfigureSystem(系統(tǒng)設置)

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

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

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

            

            2.ConfigureGlobalSecurity(全局安全配置)

            a.配置用戶相關(guān)的權(quán)限

            

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

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

            

            3.GlobalToolConfiguration(全局工具配置)

            a.配置maven的全局settings路徑

            

            b.配置jdk

            

            c.配置git

            

            d.配置maven的安裝路徑

            

            4.配置必要插件

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

            插件1:PublishoverSSH
            插件2:DeploytocontainerPlugin

            

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

          3.Jenkins自動化部署(springBoot+maven+gitHub)項目

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

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

            1.創(chuàng)建一個工程

            

            2.General(基礎配置)

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

            

            3.源碼管理

            

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

            

            4.構(gòu)建觸發(fā)器

            

            如上圖:當前項目的回調(diào)地址為:

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

            只要執(zhí)行這個地址(在瀏覽器上訪問改地址),該項目就會發(fā)起一次構(gòu)建項目,即拉取代碼打包部署操作,

            在實際中,是由git服務器回調(diào)改地址,在后面講git服務器配置時詳細講解,

            值得注意的是,如果你是學習測試,使用的是GitHub服務,要確保你的回調(diào)地址已經(jīng)試外網(wǎng)映射過的,即往外網(wǎng)可以訪問

            5.構(gòu)建環(huán)境(無需配置)

            6.構(gòu)建

            

            7.構(gòu)建后操作

            構(gòu)建后操作的意思是,jar打包好后,要將jar發(fā)送到哪里去,發(fā)送后去和啟動等

            這里需要提前在需要部署的服務器上配置好路徑,寫好啟動和停止項目的腳本,并設置為可以執(zhí)行的腳本,

            其實就是我們平時在Linux上手動部署項目操作的腳本

            

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

          1#!/bin/bash
          2echo"StopProcedure:demo2-0.0.1-SNAPSHOT.jar"
          3pid=`ps-ef|grepjava|grepdemo2-0.0.1-SNAPSHOT.jar|awk'{print$2}'`
          4echo'oldProcedurepid:'$pid
          5if[-n"$pid"]
          6then
          7kill-9$pid
          8fi

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

          1#!/bin/bash
          2exportJAVA_HOME=/usr/java/jdk1.8.0_131
          3echo${JAVA_HOME}
          4echo'Starttheprogram:demo2-0.0.1-SNAPSHOT.jar'
          5chmod777/home/ldp/app/demo2-0.0.1-SNAPSHOT.jar
          6echo'-------Starting-------'
          7cd/home/ldp/app/
          8nohup${JAVA_HOME}/bin/java-jardemo2-0.0.1-SNAPSHOT.jar&
          9echo'startsuccess'

            到此,Jenkinds服務器配置完成,接下來我還有要配置Linux服務器和Git服務器。

          3.2.Linux服務器配置

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

            

          3.3.GitHub服務器配置

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

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

            我已經(jīng)將地址:http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2,

            通過花生殼進行外網(wǎng)映射為:http://zhishidi.imwork.net/job/jenkinsSpringBootDemo/build?token=token_demo2

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

            

            到這里所有配置搞定,只需修改代碼,提交到git,然后訪問程序看是否生效。

          4.測試

            1.測試代碼

            

            2.提交代碼到git,觸發(fā)構(gòu)建

            3.在GitHub服務器上去看,是否已經(jīng)觸發(fā)

            

            4.在Jenkins的控制臺查看是否,正在構(gòu)建

            從下圖中可以看出,正在構(gòu)建

            

            5.查看當次構(gòu)建的控制臺日志

            

            說明已經(jīng)啟動成功

            6.查看Linux服務器,是否上傳代碼

            

            7.在Linux上使用命令jps,查看是否啟動

            

            8.瀏覽器上訪問,看是否能用

            

            說明,已經(jīng)正常啟動可以使用。

            9.再次確認是否能自動化部署

            修改代碼,重新提交代碼,循環(huán)1到8步查看。

            如果測試結(jié)果是你預期的,那么自動化部署成功。

          5.總結(jié)&資料下載

          5.1.總結(jié)

            自動化部署Jenkins,作為一款工具,有著非常強大的功能,

            上面我們只是講了生產(chǎn)上做Java自動化部署的一個主要流程,

            其他的功能,大家可以參看官方文檔:https://jenkins.io/zh/doc/

            但是,本著學習是為了解決生產(chǎn)的原則,

            個人建議,用到Jenkins的什么功能就學什么就可以了,

            沒必要把Jenkins的所有功能都學完在使用,

            就如同我們使用word文檔一樣,并沒有系統(tǒng)的他word文檔學完后,在開始使用,而是用到什么功能就學習什么功能!

          5.2.相關(guān)資料

            1.案例中的源碼地址:https://github.com/bangbangw/demo01.git

            2.官方文檔:https://jenkins.io/zh/doc/



          --------?THE END?--------

          ??

          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕黄色片 | A片黄色电影一级片 | 蜜桃91| 亚洲在线成人视频 | 黄色成人网站在线观看 |