使用Jenkins部署Spring Boot項目和war包項目

Jenkins是自動化部署的神器,今天就講講怎麼使用Jenkins部署SpringBoot項目。

一、環境說明

JDK1.8,MAVEN3.5,CentOS7,Jenkins:2.178

一、Linux下安裝JDK

1、登錄Oracle官網下載Linux環境下的jdk1.8的壓縮包,jdk-8u211-linux-x64.tar.gz

2、解壓,tar vxf jdk-8u211-linux-x64.tar.gz

3、配置環境變量,vim /etc/profile,在最後加上

export JAVA_HOME=/usr/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

4、修改完成之後,使其生效,source /etc/profile

5、輸入java -version 返回版本信息則安裝正常。

二、Linux下安裝MAVEN

1、登錄Apache官網下載maven壓縮包,apache-maven-3.5.4.tar.gz

2、解壓,tar vxf apache-maven-3.5.4.tar.gz

3、配置環境變量,vim /etc/profile,在最後加上

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=${PATH}:${MAVEN_HOME}/bin

4、修改完成之後,使其生效,source /etc/profile

5、輸入mvn -version 返回版本信息則安裝正常。

三、配置防火牆

關閉防火牆:systemctl stop firewalld

查看防火牆狀態:systemctl status firewalld.service

四、Jenkins安裝

 Jenkins安裝方式有很多,但是推薦使用的是用yum安裝

1、下載Jenkins

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

yum -y install jenkins

2、修改jenkins端口

       jenkins默認的運行端口是8080,但是如果這個端口本地已經被佔用了,得修改一下jenkins的配置文件,文件的位置在/etc/sysconfig/jenkins。我本地的8080端口已經被佔用,我就修改成了8889。

3、啓動jenkins並設置爲開機自啓

systemctl start jenkins,啓動jenkins

systemctl enable jenkins,設置開機自啓

systemctl status jenkins,查看狀態,處於running,代表已經啓動了

五、Jenkins插件的安裝和配置

1、安裝成功以後,瀏覽器訪問你的ip+端口,我的是192.168.0.75:8889

        第一次啓動jenkins,它會自動生成一個密碼,它會將這個密碼生成放到一個固定的地方,瀏覽器訪問的時候會告訴你該密碼的位置,/var/lib/jenkins/secrets/initialAdminPassword,去找到這個密碼,cat /var/lib/jenkins/secrets/initialAdminPassword,複製過來。

2、等待一會以後會出現以下的頁面,選擇安裝插件,選擇第一個

3、下面就是等待插件安裝成功

注:插件一次可能不會完全安裝成功,可以點擊Retry再次安裝。直到全部安裝成功 

4、配置用戶名密碼,插件安裝成功以後讓你創建一個管理員用戶,也可以點擊右下角的使用admin賬號繼續,看個人喜好

5、實例配置,這一步不需要修改東西,點擊保存並完成

 6、點擊開始使用Jenkins

7、登錄成功以後的頁面: 

8、若想修改管理員的密碼或者新增一個用戶,則點擊Manage Jenkins--》下拉找到Manage Users,點擊進去

 

 

2、全局工具配置,還是點擊系統管理--》Global Tool Configuration

       2.1 配置jdk,點擊新增JDK

默認是你選擇jdk版本,然後jenkins從對應的網站下載,我們已經安裝過了,不需要自動安裝了,把自動安裝勾選掉,就會出現讓你配置你已經安裝的jdk的路徑了。 

 

    2.2 下拉找到maven,同理配置maven

    2.3、點擊保存,就配置好了jdk和maven 

3、插件安裝,默認已經安裝了足夠用的插件,大部分不需要我們自己安裝了,但是還得安裝Maven Integration,publish over SSH。

      點擊Manage Jenkins--》Manage Plugins--》Available,勾選需要安裝的插件,點擊直接安裝或者下載重啓後安裝

         

 

4、配置SSH

        如果你jenkins和要部署的項目放在一臺服務器上,你可以不用配置SSH,因爲這個是遠程部署用的,就是你jenkins和你的應用程序不在一個服務,你要跨服務器操作用的。但是最好還是配置一下,萬一以後其他的項目在另一臺服務器,到時候還得配置,太麻煩。

       配置SSH有兩種方式,一種是使用密鑰,一種是使用賬號密碼,使用密鑰的方式太麻煩了,需要在服務器生成密鑰,然後配置,而使用賬號密碼的方式只需要在jenkins控制後臺進行配置就好了,因此我們選用第二種方式配置。

       點擊系統管理--》Configure System

六、部署項目

1、選擇創建一個新任務,然後輸入項目名,選擇構建maven項目,點擊確定

2、勾選Discard old builds(丟棄舊的構建),選擇是否備份被替換的舊包。我這裏選擇備份最近的5個

3、源碼管理,選擇svn,然後輸入url,再點擊添加,輸入svn的賬號密碼

 例如:SVN 地址:http://192.168.0.xx/svn/xxx

4、構建觸發器,無需更改

5、構建環境,勾選“Add timestamps to the Console Output”,代碼構建的過程中會將日誌打印出來

 6、Build,輸入打包前的 mvn 命令,如:clean install -Dmaven.test.skip=true -Ptest,意思是:排除測試的包內容,使用後綴爲 test 的配置文件。

 7、Post Steps,選擇Run only if build succeeds

       然後點擊Add post-build step,如果你的應用程序服務器和jenkins在一個服務器上,你可以選擇Execute sell,執行shell命令,添加shell命令,例如將打好的war包丟到tomcat的webapps目錄下,然後啓動tomcat,或者直接用java -jar +jar包,直接啓動jar包。因爲我的jenkins和應用程序不在同一個服務器上,我這裏選擇Send files or execute commands over SSH,用ssh登錄應用程序的服務器,然後執行命令或者腳本。

       Jenkins是將svn或者git上的源碼下載下來,自動下載到你jenkins安裝目錄下的workspace下,同時會用maven將代碼進行打包,放在下載項目的target文件下。然後會根據配置的應用程序服務器上的位置(下下圖中的Remote directory),將生成的jar包或者war包從jenkins的服務器拷貝到應用程序的服務器對應的文件夾中。然後啓動相應的腳本或者命令運行這個項目。

8、點擊保存即可

9、部署項目

等執行完畢就可以訪問了。

注意:

       若jenkins和項目是放在同一臺服務器上的,如果是jar包,可以在上面步驟7選擇選擇shell,然後執行shell命令,例如java -jar *.jar。如果是war包,可以將啓動停止tomcat的命令封裝成一個腳本,放在服務器上,然後用shell啓動即可。但是這裏有個問題,jenkins本身的工作是構建項目,而不是部署項目,所以在執行完打包的工作以後並不會執行啓動tomcat的start.sh命令,會把子進程都殺死,因此可以在腳本上加BUILD_ID=DONTKILLME,網上有的人說不能用,有的人說能用,但是我的能用。

       若jenkins和項目不是放在同一臺服務器上的,那麼步驟7就得選擇ssh的方式了,我的項目就是不放在一個服務器上的。還是那樣,如果是jar包,可以直接寫啓動命令。如果是war包,需要tomcat啓動,最好寫一個腳本,放在項目的那個服務器上,通過ssh進行遠程啓動這個腳本,但是腳本中要記得加 BUILD_ID=DONTKILLME。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章