搭建jenkins+Gitee實現自動化部署SpringBoot代碼

最近學習中接觸了jenkins自動部署,所以花點時間瞭解了下。它可以在代碼上傳倉庫(如github,gitee,gitlab)後,在jenkins後臺頁面中通過獲取代碼倉庫中最新代碼,進行自動化部署,而省去手動打包、上傳服務器、部署這一系列步驟,非常方便。

文章參考自:

Jenkins+碼雲 搭建持續集成環境 

Jenkins 安裝教程

 

環境搭建+Jenkins安裝

jdk安裝

從本地上傳一份jdk8到服務器,解壓移動到(/usr/local),配置環境變量,

[root@Docker dowoload]# tar -zxvf jdk-8u77-linux-x64.tar.gz 
[root@Docker dowoload]# mv jdk1.8.0_77 /usr/local/
[root@Docker local]# vi /etc/profile

#######最後增加如下代碼:
#set java env
export JAVA_HOME=/usr/local/jdk1.8.0_77
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

[root@iz2ze0dr07y7jess3rvzlgz local]# source /etc/profile

[root@iz2ze0dr07y7jess3rvzlgz local]# java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

maven安裝

下載一份maven3.5.4,解壓移動到(/usr/local),配置環境變量

[root@Docker dowoload]# wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@iz2ze0dr07y7jess3rvzlgz download]# tar -zxvf apache-maven-3.5.4-bin.tar.gz 
[root@iz2ze0dr07y7jess3rvzlgz download]# mv apache-maven-3.5.4 /usr/local/
[root@iz2ze0dr07y7jess3rvzlgz local]#  vi /etc/profile

#######最後增加如下代碼:
#set Maven environment
export M2_HOME=/usr/local/apache-maven-3.5.4
export PATH=${M2_HOME}/bin:$PATH

[root@iz2ze0dr07y7jess3rvzlgz local]# source /etc/profile

[root@iz2ze0dr07y7jess3rvzlgz local]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/apache-maven-3.5.4
Java version: 1.8.0_77, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_77/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.4.1.el7.x86_64", arch: "amd64", family: "unix"

 配置maven(修改apache-maven-3.5.4/conf/settings.xml )

1.修改maven阿里源

在 <mirrors>標籤下添加:

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

2.修改本地倉庫地址

創建/usr/local/maven-repo 文件夾

在 <settings>標籤下添加:

<localRepository>/usr/local/maven-repo</localRepository>

 

 小坑:第一次用了別的maven版本,代碼一直編譯不過去,這個版本自己用着沒問題

Jenkins安裝

官網地址:https://jenkins.io/download/

常見的安裝有 docker安裝,war包安裝,rpm安裝

小坑:本人首次安裝使用的是Docker,最後因爲maven環境變量問題一直沒有成功,有待解決(慎用!)

下面是docker-compose.yml文件

jenkins:
        image: jenkins/jenkins:lts
        volumes:
            - /data/jenkins/:/var/jenkins_home
            - /var/run/docker.sock:/var/run/docker.sock
            - /usr/bin/docker:/usr/bin/docker
            - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
            - /usr/local/apache-maven-3.5.4:/usr/local/apache-maven-3.5.4
        ports:
            - "8029:8080"
        expose:
            - "8080"
            - "50000"
        privileged: true
        user: root
        restart: always
        container_name: jenkins
        environment:
            JAVA_OPTS: '-Djava.util.logging.config.file=/var/jenkins_home/log.properties'

我選擇 yum安裝Jenkins(此方式偶然間發現在早上六七點的時候下載賊快,其他時間都是龜速)

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key //如果已經有 key 存在,請忽略。具體見官方 wiki
sudo yum install jenkins

安裝完成後首次啓動會有異常,修改方法如下:

1.增加本地java環境到配置文件(/etc/init.d/jenkins)

2.修改Jenkins用戶(因mvn編譯的時候要刪除target,這裏不修改會權限不足無法刪除)(/etc/sysconfig/jenkins )

3.修改啓動 端口號(/etc/sysconfig/jenkins )

最後啓動Jenkins

[root@iz2ze0dr07y7jess3rvzlgz ~]# systemctl restart jenkins
[root@iz2ze0dr07y7jess3rvzlgz ~]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: active (running) since Tue 2019-11-05 22:55:41 CST; 24s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 14696 ExecStop=/etc/rc.d/init.d/jenkins stop (code=exited, status=0/SUCCESS)
  Process: 14715 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/jenkins.service
           ├─12420 java -Xms246m -Xmx500m -Dhudson.util.ProcessTree.disable=true -jar /var/lib/jenkins/workspace/pipi/target/login-test-0.0.1-SNAPSHOT.jar
           └─14736 /usr/local/jdk1.8.0_77/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/...

Nov 05 22:55:40 iz2ze0dr07y7jess3rvzlgz systemd[1]: Stopped LSB: Jenkins Automation Server.
Nov 05 22:55:40 iz2ze0dr07y7jess3rvzlgz systemd[1]: Starting LSB: Jenkins Automation Server...
Nov 05 22:55:40 iz2ze0dr07y7jess3rvzlgz runuser[14720]: pam_unix(runuser:session): session opened for user root by (uid=0)
Nov 05 22:55:41 iz2ze0dr07y7jess3rvzlgz jenkins[14715]: Starting Jenkins [  OK  ]
Nov 05 22:55:41 iz2ze0dr07y7jess3rvzlgz systemd[1]: Started LSB: Jenkins Automation Server.
[root@iz2ze0dr07y7jess3rvzlgz ~]# 

 

Jenkins啓動&插件安裝

 

一:地址欄輸入 ip:8029 訪問jenkins(如不能訪問,請檢查防火牆或jenkins服務是否正確啓動)

[root@Docker dowoload]# cat /var/lib/jenkins/secrets/initialAdminPassword

查看密碼並輸入

出現如下頁面

解決方法如下:

輸入:http://ip:8029/pluginManager/advanced

方框中的地址:https://updates.jenkins.io/update-center.json

改爲:http://updates.jenkins.io/update-center.json

Https協議改爲http,然後服務器重啓jenkins服務,再次訪問jenkins首頁

二:選擇安裝推薦的插件

成功打開首頁後:

安裝maven info和coding web hook插件

  進入系統管理-->插件管理-->點擊avalible-->搜索maven,找到maven info,同樣,找到coding webhook插件,點擊安裝,安裝之後重啓Jenkins就可以了

 

 

       

 

 

三、配置系統變量

  配置系統變量之前需要在系統安裝git、jdk、maven,具體的不多說了

  點擊系統管理-->全局工具配置-->配置jdk\mavn

五、創建項目

Pre Steps : 構建項目的時候殺死java進程

build :git clone 代碼,並且maven編譯

Post Steps :把編譯好的xxx.jar 通過 java -jar 命令運行(因jenkins啓動完成後會殺死衍生進程,所以需要做特殊處理) 

 

 

在碼雲上設置

  進入碼雲,進入具體的項目,點擊右邊的“管理”,進入管理頁面,然後點擊左邊的“webHooks”,進行設置,其中URL需要填寫jenkins中的webhook地址,密碼填寫jenkins的webhook令牌,然後點擊添加保存就可以了。

    

   

build.sh腳本

#!/usr/bin/env bash
echo "開始啓動java程序。。。。"
export BUILD_ID=dontKillMe
nohup java -Xms246m -Xmx500m -Dhudson.util.ProcessTree.disable=true -jar /var/lib/jenkins/workspace/pipi/target/login-test-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &
sleep 10s

 

 

最後點擊構建,就可以看到項目的構建過程了 

 

 

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