jenkins自动化打包部署,jenkins执行sh脚本不退出问题

介绍

Jenkins是开源软件项目,主要用来自动化打包部署。使用jenkins彻底告别手动部署的麻烦与繁琐。

安装部署jenkins

  1. 官方下载地址
  2. 启动jenkins war包
  3. 登入jenkins
  4. 设置maven,jdk
    由于jenkins机器已有Maven与jdk,这里直接设置对应安装路径即可jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第1张图片jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第2张图片
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第3张图片
  5. 修改Jenkins工作目录
    Jenkins默认的工作目录很容易占满,在jenkins配置界面可以看到修改工作目录的流程。
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第4张图片

项目构建与部署

设置应用部署目标服务器

jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第5张图片

  1. 配置远程服务器ssh登录
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第6张图片
  2. 设置密码与超时时间
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第7张图片

新增maven项目

  1. 输入项目名称,类型
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第8张图片

  2. 设置代码库,这里我使用的是svn
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第9张图片

  3. 设置编译脚本
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第10张图片
    点击高级,设置不触发下游工程任务。
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第11张图片

  4. 编译成功之后将可执行jar包推送到目标服务器并远程调用重启脚本
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第12张图片
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第13张图片
    执行之前要设置为pty环境,不然jenkins可能无法从非pty环境的脚本中退出
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第14张图片

  5. 保存jenkins配置

  6. 在目标服务器编写重启脚本

APP_NAME=/home/iic/static/xx.jar
#执行命令有误时,提示使用说明参数
usage() {
 echo "Usage: bash.sh [start|stop|restart|status]"
 exit 1
}

#检查程序是否已经在运行
is_exist(){
 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
if [ -z "${pid}" ]; then
 return 1
 else
 return 0
 fi
}

#启动服务
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    java -XX:+UseG1GC -jar $APP_NAME --spring.profiles.active=prod &
  fi
}

#停止服务
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi
}
#输出服务运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重启服务
restart(){
  stop
  start
}

#根据输入参数,选择执行对应的方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

项目部署与发布

  1. 执行jenkins构建与发布
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第15张图片
  2. 查看jenkins执行结果
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第16张图片
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第17张图片
  3. 转到服务器查看部署结果
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第18张图片
    在这里插入图片描述

自动删除build记录

背景

build记录占用空间很大,不指定删除逻辑硬盘容易占满。

过程

  1. 为jenkins安装Configuration Slicing插件
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第19张图片
  2. 安装插件后重启jenkins
  3. 通过插件给所有项目统一配置自动删除build记录
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第20张图片
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第21张图片
    配置只保留5天build记录
    jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第22张图片
  4. 效果
    • 切换到单个工程查看自动删除记录逻辑
      jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第23张图片
    • 执行工程后在服务器通过命令du -h -x --max-depth=1观察相关目录占用空间
      jenkins自动化打包部署,jenkins执行sh脚本不退出问题_第24张图片

你可能感兴趣的:(other,jenkins,自动化,ci)