一、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密钥:

# https://pkg.origin.jenkins.io/redhat-stable/

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:项目构建部署

六,参考链接

1、https://juejin.cn/post/6844904019270303757

2、https://cloud.tencent.com/developer/article/1764890

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐