Jenkins实现自动化部署

一、安装、配置JDK环境

JDK下载链接:https://www.oracle.com/java/technologies/downloads

  • 把下载好的JDK上传到Linux服务器并解压
    /home/csdm/jdk为我上传的地址

  • 配置JDK环境变量,使用vim命令编辑 /etc/profile 文件
    List item

  • 在==/etc/profile== 文件中加入如下配置,其中JAVA_HOME为jdk的安装路径
    在这里插入图片描述

  • 刷新配置文件

    • 命令:source /etc/profile
      在这里插入图片描述
  • 输入 javac 检查Java是否安装成功,如果你和我的情况一样,那就是成功了。
    在这里插入图片描述

二、安装、配置Maven

  • 把下载好的maven上传到Linux服务器并解压
    在这里插入图片描述
  • 同上,编辑 /etc/profile 文件,配置maven环境变量
    在这里插入图片描述
  • 刷新配置文件
    • 命令:source /etc/profile
  • 检查maven是否安装成功
    • 命令: mvn -v
      在这里插入图片描述

三、安装Git

可以使用yum安装,存在的问题是版本不好控制。
所以我们可以到 https://github.com/git/git/tags下载自己所需要的版本,手动进行安装。

  • 安装步骤
  1. 获取github最新的Git安装包下载链接,进入Linux服务器,执行下载,命令为: wget https://github.com/git/git/archive/v2.17.0.tar.gz ;

  2. 压缩包解压,命令为: tar -zxvf v2.17.0.tar.gz ;

  3. 安装编译源码所需依赖,命令为: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 耐心等待安装,出现提示输入y即可;

  4. 安装依赖时,yum自动安装了Git,需要卸载旧版本Git,命令为: yum remove git 出现提示输入y即可;

  5. 进入解压后的文件夹,命令 cd git-2.17.0 ,然后执行编译,命令为 make prefix=/usr/local/git all 耐心等待编译即可;

  6. 安装Git至/usr/local/git路径,命令为 make prefix=/usr/local/git install ;

  7. 打开环境变量配置文件,命令 vim /etc/profile ,在底部加上Git相关配置信息:export PATH=/usr/local/git/bin:$PATH
    在这里插入图片描述

  8. 然后保存,退出。输入命令 git --version ,查看安装的git版本,校验通过,安装成功。

四、在Linux服务器安装Jenkins并启动

Jenkins下载地址:https://www.jenkins.io/download/ 下载网站的war包版本就好了;

  • 把下载好的Jenkins.war上传到Linux服务器
    在这里插入图片描述

  • 启动Jenkins服务

    • 命令:java -jar jenkins.war --httpPort=8080
  • 然后通过浏览器访问,访问地址是 http://服务器ip:8080/
    在这里插入图片描述
    访问Jenkins的时候,有个初始化密码需要输入,根据如图所示路径查看密码即可;

  • 其次安装Jenkins推荐的插件。
    在这里插入图片描述

  • 插件安装完成之后会让我们初始化一个超级管理员账户(以后登录Jenkins使用此账号登录即可)。

  • 输入初始化后的用户名、密码就可以进入到Jenkins的主页了。
    在这里插入图片描述

五、配置Jenkins

  • 进行全局工具配置

    • 按图操作,点击Manage Jenkins -> Global Tool Configuration
      在这里插入图片描述
  • 配置JDK

在这里插入图片描述

  • 配置Maven

在这里插入图片描述

  • 配置maven的settings.xml路径

在这里插入图片描述

  • settings.xml文件中的内容需要做如下配置!!!
#配置本地仓库路径,在settings.xml中添加localRepository标签
<localRepository>/home/csdm/maven/repository</localRepository>


#配置阿里云镜像(加速),在settings.xml文件中的mirrors下添加mirror标签
<mirror>
  <id>nexus-aliyun</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
  • 配置Git

    • Git安装路径可以通过 which git 命令查看
      在这里插入图片描述
      在这里插入图片描述
  • 应用并保存

六、部署项目

  1. 在Jenkins首页点击新建Item
  2. 在弹出的页面中输入项目名称,并选择 构建一个maven项目
    在这里插入图片描述
    如果在创建项目时候,没有 构建一个Maven项目 的选项。
    你需要安装Maven项目插件:Maven Integration plugin
  3. 进入项目配置页面,源码管理选择Git,输入用户名/口令,并选择对应的分支。
    在这里插入图片描述
  4. 构建触发器,配置cron表达式,没两分钟检查一次代码是否有新的提交,如果有那么就触发构建
    在这里插入图片描述
  5. 配置Pre Steps(构建之前执行的操作)
    在这里插入图片描述
  6. Build(构建)
    在这里插入图片描述
  7. Post Steps(构建之后的步骤)
    在这里插入图片描述
  8. 应用并保存,此时就可以执行自动化构建操作了
    在这里插入图片描述
    PS:首次构建可能会无法请求到接口
    原因:Post Steps脚本中的jar文件路径错误
    解决措施:可以在 构建历史 -> 控制台输出 中查看打包后的jar文件路径,更正Post Steps脚本中的jar文件路径即可
    在这里插入图片描述

Pre Steps脚本文件

#将应用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
sp_pid=`ps -ef | grep csdm-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -z "$sp_pid" ];
then
 echo "[ not find sp-tomcat pid ]"
else
 echo "find result: $sp_pid "
 kill -9 $sp_pid
fi

Post Steps脚本文件

echo "startUp"
#startup.sh 启动项目
echo "授予当前用户权限"
chmod 777 /root/.jenkins/workspace/csdm/target/csdm-0.0.1-SNAPSHOT.jar
echo "执行"
sleep 1s
BUILD_ID=dontKillMe nohup java -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M -jar /root/.jenkins/workspace/csdm/target/csdm-0.0.1-SNAPSHOT.jar >> /dev/null 2>&1 &
echo "startEnd"

----------------PS:关键字解释----------------

  • BUILD_ID=dontKillMe (必须有:因为Jenkins默认会在Build结束后Kill掉所有的衍生进程,BUILD_ID=dontKillMe可有效防止进程被杀掉)
  • nohub (以后台方式运行)
  • sleep 1s (必须有:否则Jenkins会保持一直是打包中的状态,虽然程序可以正常访问,但是无法打包成功)
  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值