一、Jenkins简介
Jenkins是开源CI&CD软件领导者,是Devops神器,本文介绍Jenkins的安装,自动构建,部署SpringBoot项目

二、服务器环境准备
1、192.168.138.163 用于安装Jenkins

2、192.168.138.161 用于部署Jenkins的编译结果(SpringBoot项目.jar文件)

三、Centos7安装Jenkins
注意:安装Jenkins之前需要安装JDK和Maven

1.启用Jenkins库
运行以下命令以下载repo文件并导入GPG密钥:

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
2.安装Jenkins
执行如下命令安装Jenkis。

yum install jenkins
接下来,修改Jenkins默认端口,如下所示。

vim /etc/sysconfig/jenkins
修改后的两项配置如下所示。

JENKINS_JAVA_CMD="/usr/local/jdk/bin/java"
JENKINS_PORT="18080"
此时,已经将Jenkins的端口由8080修改为18080

3.启动Jenkins
在命令行输入如下命令启动Jenkins。

systemctl start jenkins
配置Jenkins开机自启动。

systemctl enable jenkins
查看Jenkins的运行状态。

systemctl status jenkins


说明,Jenkins启动成功。

四、配置Jenkins运行环境
1.登录Jenkins
首次安装后,需要配置Jenkins的运行环境。首先,在浏览器地址栏访问链接http://192.168.138.163:18080,打开Jenkins界面。

据提示使用如下命令到服务器上找密码值,如下所示。

cat /var/lib/jenkins/secrets/initialAdminPassword
将密码82af871c2vb948aib6epc9ftdde907oy复制到文本框,点击继续。会跳转到自定义Jenkins页面,如下所示。

这里,可以直接选择“安装推荐的插件”。之后会跳转到一个安装插件的页面,如下所示。

此步骤可能有下载失败的情况,可直接忽略。

2.安装插件


       1),需要安装三个必须插件:Git plugin 和 Maven Integration plugin,publish over SSH,可以使用该方法:系统管理 -> 插件管理 -> 可选插件 -> 根据插件名字搜索安装即可。如上图。

 

Git plugin:支持Git的插件
Maven Integration plugin:构建Maven项目所需要的插件,安装后在创建新项目时可以选择构建Maven项目
publish over SSH:SSH连接服务器,让项目可以发布在其他服务器上
       2)、(后续与Kubernetes集成时 )需要安装的插件

Kubernetes Cli Plugin:该插件可直接在Jenkins中使用kubernetes命令行进行操作。
Kubernetes plugin:使用kubernetes则需要安装该插件
Kubernetes Continuous Deploy Plugin:kubernetes部署插件,可根据需要使用
       3),还有更多的插件可供选择,可点击 系统管理->管理插件进行管理和添加,安装相应的Docker插件、SSH插件、Maven插件。其他的插件可以根据需要进行安装。如下图所示。

逐个完成这些插件的安装:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Build Timeout、Email Extension、Localization、Maven Integration,全部初始化成功后,重启jenkins服务。
 

3.配置Jenkins有关插件
(1)Global Tool Configuration配置Maven/JDK/GIT

        

Maven全局配置:可以修改settings.xml将远程仓库成阿里云速度会快点,如果自己公司有中央仓库也可以做修改.由于本文在服务器上将Maven安装在/usr/local/maven目录下,所以,需要在“Maven 配置”中进行配置,如下图所示。


              

接下来,配置JDK,如下所示。


        注意:不要勾选“Install automatically”

            

接下来,配置GIT,如下所示。


Centos7升级git参见:https://blog.csdn.net/weixin_38007578/article/details/118491401

                  

接下来,配置Maven,如下所示。


        注意:不要勾选“Install automatically”

(2)配置SSH remote hosts:系统管理 -> 系统配置 ->SSH remote hosts

       配置完成后,点击Check connection按钮,会显示 Successfull connection。如下所示。

至此,Jenkins的基本配置就完成了。

(3)配置SSH Server:系统管理 -> 系统配置 -> Publish over SSH

        参见本博主博文:https://blog.csdn.net/weixin_38007578/article/details/118499220

4.新建Item(项目配置)


 本文此处输入:eureka-server

勾选丢弃旧的构建,选择是否备份被替换的旧包。这里选择备份最近的10个


源码管理:选择Git填写仓库地址,并添加访问账号和密码或者秘钥


添加访问凭据:点击添加,添加访问认证(我是用的UserName+Password模式也可以选择其他方式)


构建环境:构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来


Build:在Build中填写Pom位置(多模块,单一模块默认即可),并填写Maven打包命令


Post Steps:选择Run only if build succeeds,打包成功后执行

构建后操作:选择 Send build artifacts over SSH:构建成功后的操作,通过SSH传输文件,并执行相应脚本或者命令


# run-eureka-server.sh文件的内容如下:
 

DATE=$(date +%Y%m%d)
 
DIR=/usr/local/workspace/bin
 
JARFILE=spc-discovery-2.0.0-SNAPSHOT.jar
 
if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi
cd $DIR
 
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
 
# mv $JARFILE backup/$JARFILE$DATE
 
nohup java -jar ./spc-discovery-2.0.0-SNAPSHOT.jar -Djava.security.egd=file:/dev/./urandom --spring.profiles.active=dev > ./run.log  &
 
if [ $? = 0 ];then
        sleep 30
        tail -n 50 ./run.log
fi
 

JARFILE=cgit-sso-1.0.jar
SHORTNAME=sso
DIR=/opt/app/
DATE=$(date +%Y%m%d)
TIME=$(date +%H%M%S)
 
export JAVA_HOME=/usr/local/java/jdk1.8.0_281
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
 
 
if [ ! -d $DIR/backup/$DATE ];then
   mkdir -p $DIR/backup/$DATE
fi
 
cd $DIR
 
 
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
 
 
# mv $JARFILE backup/$JARFILE$DATE
 
# nohup java -jar ./$JARFILE -Djava.security.egd=file:/dev/./urandom --spring.profiles.active=dev > ./run.log  &
 
java -jar $JARFILE --spring.profiles.active=dev  --EUREKA_HOST=msserver01 > logs/${SHORTNAME}.log &
 
 
cp $JARFILE backup/$DATE/$JARFILE-$TIME
 
 
 
#if [ $? = 0 ];then
#        sleep 30
#        tail -n 50 ./logs/pub.log
#fi


五、Jenkins构建与运行结果
点击立即构建或者Build Now:项目构建部署


访问 部署目标服务地址:http://192.168.138.161:11001/(SpringBoot的端口各不相同)


六,参考链接
1、https://juejin.cn/post/6844904019270303757

2、https://cloud.tencent.com/developer/article/1764890
————————————————
版权声明:本文为CSDN博主「远航灯塔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38007578/article/details/118526554

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐