搭建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

 

 

最后点击构建,就可以看到项目的构建过程了 

 

 

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