CentOS7.2集成jenkins github maven部署springboot项目

一、环境准备

  1. CentOS7.2 64位系统;

二、安装jdk

  1. 查看是否已经安装jdk
[root@centos ~]# rpm -qa |grep jdk
jdk1.8-1.8.0_161-fcs.x86_64

[root@centos ~]# yum list installed |grep jdk
jdk1.8.x86_64                    2000:1.8.0_161-fcs                installed

  1. 卸载已安装的jdk
[root@centos ~]# yum -y remove jdk1.8.x86_64

卸载完成之后Java命令不被识别

[root@centos ~]# java -version
bash: java: command not found...
  1. 下载安装jdk
    JDK下载网址
    解压到安装目录
[root@centos ~]# tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/java/
  1. 配置环境变量并使其生效
  • 注意:path路径中是冒号,不是分号!
[root@centos ~]# vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

[root@centos ~]# source /etc/profile
  1. 最后检查是否安装成功
[root@centos ~]# java -version
java version "1.8.0_161"

三、Maven 安装

  1. 下载安装文件
[root@centos ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
  1. 解压安装并移动指定目录
[root@centos ~]# tar -zxvf apache-maven-3.3.9-bin.tar.gz 
[root@centos ~]# mv apache-maven-3.3.9 /usr/maven/apache-maven-3.3.9
  1. 配置环境变量
    使用vim编辑/etc/profile文件
[root@centos ~]# vim /etc/profile

export M2_HOME=/usr/maven/apache-maven-3.3.9
export PATH=${M2_HOME}/bin:${PATH}

[root@centos ~]# source /etc/profile

4. 检验maven是否安装成功

[root@centos ~]# mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/maven/apache-maven-3.3.9
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_161/jre
Default locale: en_US, platform encoding: UTF-8
...

四、Git 安装

  1. 安装:
[root@centos ~]#yum install git
  1. 配置:
[root@centos ~]# git config --global user.name "github_name"
[root@centos ~]# git config --global user.email github@email.com

五、Jenkins 安装

  1. 下载安装Jenkins
[root@centos ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
[root@centos ~]#rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
[root@centos ~]#yum install jenkins
  1. 修改端口
    默认端口为8080,如果有冲突的话,建议修改。
[root@centos ~]# vi /etc/sysconfig/jenkins

JENKINS_PORT="8080"

  1. 启动服务
[root@centos ~]# service jenkins start
  1. 登录配置
    成功启动后,我们就可以通过 http://ip:端口号 访问了!

在浏览器中访问
首次进入会要求输入初始密码如下图,
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword


jenkins001.png
jenkins002.png

选择插件
进入用户自定义插件界面,选择第二个(因为我们本次构建使用的为Pipelines)
勾选与Pipelines相关的插件


jenkins003.png

等待插件安装完成


jenkins004.png

配置用户名和密码


jenkins005.png

全局配置
系统管理-》全局工具配置 配置Git,JDK和Maven


jenkins006.png

jenkins007.png

安全配置
系统管理-》全局安全配置
● 勾选Allow anonymous read access
● 取消防止跨站点请求伪造


jenkins008.png

新建一个Maven项目


jenkins009.png

配置git源码、add用户密码


jenkins010.png

配置shell打包部署脚本


jenkins011.png
#!/bin/bash 
cd /usr/springboot
echo "Execute shell Start"
sh stop.sh
sh replace.sh
echo "Execute shell Finish"
chmod 777 /usr/springboot/startup.sh
BUILD_ID=dontKillMe nohup /usr/springboot/startup.sh &

配置三个脚本到指定目录,这里我配置的是/usr/springboot

  • stop.sh
[root@centos ~]# cd /usr/springboot
[root@centos ~]# vi stop.sh

#!将应用停止
#!stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application for SUN"
ls
pid=`ps -ef | grep spring-boot.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
#!kill -9 强制终止
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
  • replace.sh
[root@centos ~]# mkdir /usr/springboot/back_up
[root@centos ~]# cd /usr/springboot
[root@centos ~]# vi replace.sh

#!新增备份包的目录/usr/springboot/back_up
#!jenkins下系统管理→系统设置→主目录为/var/lib/jenkins
#!当前新建的jenkins任务名称为sun
#!则jenkins编译好的包存放在 /var/lib/jenkins/workspace/sun/target
#!将现有的jar备份后,将jenkins编译的新jar包复制到指定目录
#!replace.sh
#!/bin/bash
#!将现有的jar备份后,将新的jar包替换
file="/usr/springboot/spring-boot.jar"
if [ -f "$file" ]
then
mv /usr/springboot/spring-boot.jar /usr/springboot/back_up/spring-boot.jar.`date +%Y%m%d%H%M%S`
fi
cp /var/lib/jenkins/workspace/sun/target/sun.jar /usr/springboot
  • startup.sh
[root@centos ~]# cd /usr/springboot
[root@centos ~]# vi startup.sh

#!启动当前springboot项目
#!startup.sh
#!/bin/bash
ehco "授予当前用户权限"
chmod 777 /usr/springboot/spring-boot.jar
echo "执行....."
cd /usr/springboot
java -jar spring-boot.jar

任务配置完成后,就可以执行立即构建,在控制台可以看到如下信息:

[JENKINS] Archiving /var/lib/jenkins/workspace/sun/pom.xml to com.sun/spring-boot/0.0.1-SNAPSHOT/spring-boot-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving /var/lib/jenkins/workspace/sun/target/spring-boot.jar to com.sun/spring-boot/0.0.1-SNAPSHOT/spring-boot-0.0.1-SNAPSHOT.jar
channel stopped
[sun] $ /bin/bash /tmp/jenkins5964668620232748720.sh
Execute shell Start
root
Stopping SpringBoot Application for SUN
kill -9 的pid: 28951
Execute shell Finish
授予当前用户权限
执行.....
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |____| .
|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v2.0.0.RELEASE)

若控制台中报错提示权限不足时,参考如下:
打开配置文件,修改$JENKINS_USER,并去掉当前行注释

[root@centos ~]# vim /etc/sysconfig/jenkins

$JENKINS_USER="root"

修改Jenkins相关文件夹用户权限

[root@centos ~]# chown -R root:root /var/lib/jenkins
[root@centos ~]# chown -R root:root /var/cache/jenkins
[root@centos ~]# chown -R root:root /var/log/jenkins

重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root

[root@centos ~]# service jenkins restart
[root@centos ~]# ps -ef | grep jenkins
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,363评论 6 343
  • 入门 介绍 Spring Boot Spring Boot 使您可以轻松地创建独立的、生产级的基于 Spring ...
    Hsinwong阅读 16,705评论 2 89
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 4,208评论 6 39
  • 我想自己应该是技术兵 英语和传播,应当持续每日精进,就能被喜欢的事和人一直跟着,一直到越来越多不可替代性 如果我已...
    林依Evelyn阅读 187评论 1 1