Jenkins + svn + war + maven 自动部署

Jenkins + svn + war + maven 自动部署

在使用Jenkins前,先确保服务器上已经安装好需要的环境。(jdk、maven、构建的服务器上的tomcat 等等)

安装 Jenkins

以 rpm 的方式安装

官方方式:

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

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

这一步失败也没关系,可能以前有 import 过。

yum install jenkins

手动方式:

如果上面的方式提示文件下载失败(连接超时),可以手动下载rpm包然后上传:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/

sudo rpm -ivh jenkins-2.263.4-1.1.noarch.rpm

注意要根据自己下载的版本来填写。

安装之后的默认路径如下:

路径描述
/usr/lib/jenkins/jenkins.warWAR包
/etc/sysconfig/jenkins配置文件
/var/lib/jenkins/默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.logJenkins日志文件

修改配置文件:

sudo vim /etc/sysconfig/jenkins
JENKINS_USER="root"  #默认用户 jenkins,不修改成root可能权限会不够
JENKINS_PORT="9999"  #默认端口 8080,可能会跟tomcat冲突,改一下

配置 jdk 路径:

如果 jdk 不是通过 yum 安装的,则需要修改脚本文件加入手动安装的 jdk 路径。

sudo vim /etc/init.d/jenkins

candidates 中加入一行写自己的 jdk 路径:
图里是默认配置
图里是默认配置,jdk路径要写到 java 这个执行程序为止

启动:

sudo service jenkins start

首次访问:

首次访问 jenkins 页面是会提示输入密码,页面会告诉你密码放在哪个路径下。
在这里插入图片描述

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

选择安装推荐的插件,等待安装:
在这里插入图片描述

创建一个用户:
在这里插入图片描述
开始使用,首页界面:
在这里插入图片描述

配置 Jenkins

在这里插入图片描述
在这里插入图片描述
需要或可能会用到以上这几个菜单。

安装插件

在插件管理中,搜索并安装。

Publish Over SSH:用于远程连接服务器。
Subversion:用于连接svn代码版本库,获取最新的代码。
在这里插入图片描述
勾选后,点直接安装,等待安装完成即可

系统配置

安装完插件后,打开系统配置(拉到最下面),进行配置。
在这里插入图片描述
配置完后,记得在对应服务器上创建该目录。

全局安全配置

在这里插入图片描述
授权策略根据实际情况进行配置,这里是直接开到最大权限。

全局工具配置

Maven 配置文件路径:
在这里插入图片描述
JAVA_HOME 配置:
在这里插入图片描述
MAVEN_HOME 配置:
在这里插入图片描述

凭证管理

提前添加 svn 的凭证,等一下就不用添加了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入自己svn的账号密码

创建 Jenkins 任务

在这里插入图片描述
在这里插入图片描述

构建文件丢弃策略:
在这里插入图片描述

源码管理:
在这里插入图片描述

构建触发器:
在这里插入图片描述
每天的0-7点之间Jenkins会自动选择一个空闲的时间检查代码是否有新版本,如果发现代码版本库有更新,则触发构建。

根据实际情况也可以配置成其他的触发方式。

构建步骤:

invoke top-level Maven targets
在这里插入图片描述
使用 maven 进行构建,目标中写入要执行的 maven 命令。

构建后的动作:

Send build artifacts over SSH
在这里插入图片描述
这里的 Remote directory 是相对路径,就是之前系统配置时填的 ssh 上传文件路径。(这里就相当于于上传到 /usr/local/jenkins-upload/tocmat/ROOT.war)
2021-3-22 记录:Exec command突然失效,未查到原因,改成了下面的方式才可以。

cd /usr/local/jenkins-upload/tomcat
./restart.sh

尝试构建

在这里插入图片描述
然后在构建历史中,控制台输出,可以看到每一次构建的日志。
在这里插入图片描述
在这里插入图片描述
back to normal 表示构建正常结束,成功!

附加信息

服务器 restart.sh 脚本

#!/bin/bash

logfile=./script.log

{
echo ""
echo $(date +"%Y-%m-%d %T") "- Jenkins auto build start"

if [ ! -e ROOT.war ]; then
   echo "file 'ROOT.war' is not exists, please check the jenkis config."
   exit 0
fi

echo $(date +"%Y-%m-%d %T") "- Stop tomcat."
systemctl stop tomcat

# 删除旧的备份文件
echo $(date +"%Y-%m-%d %T") "- Delete the old version of the bakcup file."
rm -rf /usr/local/jenkins-upload/backup/ROOT.war

# 将当前正在运行的版本备份一份
echo $(date +"%Y-%m-%d %T") "- Backup the current version file."
cp -f /usr/local/dev/apache-tomcat-8.5.27/webapps/ROOT.war /usr/local/jenkins-upload/bakcup/ROOT.war

# 删除当前版本
echo $(date +"%Y-%m-%d %T") "- Delete the old version file."
rm -rf /usr/local/apache-tomcat-8.5.63/webapps/*

# 将新构建的版本放到 tomcat 下
echo $(date +"%Y-%m-%d %T") "- Move the new version file."
mv -f /usr/local/jenkins-upload/tomcat/ROOT.war /usr/local/dev/apache-tomcat-8.5.27/webapps/ROOT.war

echo $(date +"%Y-%m-%d %T") "- Start tomcat."
systemctl start tomcat

echo $(date +"%Y-%m-%d %T") "- Jenkins auto build over."
} >> $logfile

我的 tomcat 配置了 systemctl 所以这里用的是这样去启动和停止,实际根据自己调整。

同款 tomcat 配置参考这个:https://blog.csdn.net/qq_31150365/article/details/89330366

如何确定自己的 Source files 在哪里

在构建历史的控制台输出中,可以看到每一次的构建日志。
通过日志就可以看到输出的文件是在什么目录下了。
在这里插入图片描述
demo 是 jenkins 的任务名称,所以后面的这一段,就是 source files 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值