Centos7.x下yum安装Jenkins/自动构建部署SpringBoot项目
JenkinsJenkins是开源CI&CD软件领导者,是Devops神器,本文介绍Jenkins的安装,自动构建,部署SpringBoot项目服务器环境准备1、192.168.138.163 用于安装Jenkins2、192.168.138.161 用于部署Jenkins的编译结果(SpringBoot项目.jar文件)Centos7安装Jenkins注意:安装Jenkins之前需要安装
一、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:项目构建部署
- 访问 部署目标服务地址:http://192.168.138.161:11001/(SpringBoot的端口各不相同)
六,参考链接
更多推荐
所有评论(0)