jenkins 构建前执行shell_【Jenkins自动化部署】Linux节点的Python服务自动化构建

本文详细介绍了如何使用Jenkins在Linux节点上自动化构建Python服务。首先,配置Linux节点,包括设置执行器数和远程工作目录。然后,通过SSH连接节点,并在SVN中创建master和release目录。接着,创建Jenkins任务,定义构建参数,如gunicorn_path、port等。在源码管理中配置SVN URL,并在构建阶段根据参数执行启动、重启或停止操作。最后,展示构建过程及日志。
摘要由CSDN通过智能技术生成
Jenkins 系列会从
Ubuntu的服务端部署、
Linux节点的Python服务自动化构建、
Windows节点Python服务自动化构建、
Vue服务自动化构建、
监控服务自动化构建、
用户权限控制 几个方面进行介绍

Linux节点的Python服务自动化构建

首先介绍下前提条件:节点服务器有Python运行环境

Linux节点配置

节点列表

可以点击 构建执行状态 进入节点列表

4de57cd9135ffd07a5969f31d8eb30b7.png


也可以点击 系统管理节点管理 进入节点列表

7c1d0ada0fea4dac2e02ded94966d589.png

节点列表

6e7942aeef635d01e21fdd7c1d8f540b.png

新建节点

填写节点名称 选择固定节点 或者 复制现有节点的 配置

546f27eaeedf2e882b47e4f97daa0a52.png
  • 执行器数 是服务器可以同时进行构建的个数,单一服务器上的部署的项目比较多时,可以增加执行器数量来加快构建速度
  • 远程工作目录 是Jenkins远程的服务,采集器、项目工作目录都会创建在这个工作目录下
  • 用法 我选择的指定机器的任务
  • 启动方式 Launch agents via SSH 没有这个选项的查看下已安装的插件

e126270856332cd6b09cbc56e8da1c01.png
  • 添加服务器凭据

3bd422d9aeb4adaa0a897fbc5d6b58df.png

配置好就可以 保存 并 上线节点了

上线后的节点 就可以在点在列表中看到了

此时登录服务器 可以看到远程工作目录下会有 如下的文件

fedbe6fcc95fb3f2df7b3629c1939cb6.png

SVN操作

  • 有权限的SVN URL 和 用户账户信息
  • 在项目服务下创建 master 目录 作为开发目录使用
  • 在项目服务下创建 release 目录 作为Tags目录使用 在下面的构建参数 svn_release 中使用
  • 创建 Tags 到 release 目录

创建目录

983490e801347f3d70ffae16c88ec42c.png

创建Tags

填写要保存的 版本名称 和 版本描述,点击 OK

53db2f343e25d64c760de7f8aaaae95d.png

创建任务

新建任务

新建任务 填写 任务名称 选择 构建一个自由风格的软件项目

2a116df8bb4d2789f7757edcc831bf18.png

构建参数

构建参数我这里添加了:

  • gunicorn_path(启动FastAPI项目)
  • port 启动端口 下面的构建 shell 中有用到
  • workers 启动线程数端口 下面的构建 shell 中有用到
  • main_file 项目构建时 代码会更下在 workspace 目录下的 有任务名称命名的目录下,$JOB_NAME 是获取任务名称,这样可以方便重启时定位进程 下面的构建 shell 中有用到
  • app_name 意义不大 下面的构建 shell 中有用到
  • deploy_env 执行的操作 分为 restart start stop
  • svn_release 加载项目的 tags,展示最新的 50 tags 没有这个参数时 需要安装 Jenkins SVN 插件 下面的源码管理 URL 中有用到

1a0cebfb6e7399c78a3cefa55947cb97.png

4a04031b16615c8da8f177766f6a5fa7.png

3dd8948f247df2b53d3cc9728d106402.png

e1a4ea175ed414cc0e4dd84ea88ba69d.png

源码管理

源码管理这个的 SVN URL ,每次构建时会在工作目录下 更新 选择的svn_release版本对应的 源码,以实现 版本控制的 效果。

ab3d9e2daf33a3831135447be9e3f332.png

f10d1d88e300b7337fe0f4fed1ceebe5.png

构建

9737300468431eb5d362126dde129400.png

执行shell 分为三个情况,执行情况由构建参数 deploy_env 决定

  • start 使用gunicorn启动项目
  • restart 根据 main_file 杀死旧的进程并启动新的代码
  • stop 根据 main_file 杀死旧的进程
  • BUILD_ID=dontKillMe解决 Jenkins shell 无法后台运行的问题
echo $deploy_env
case $deploy_env in
	start)
    	echo "start: $deploy_env"
        cd .. 
        && BUILD_ID=dontKillMe $gunicorn_path/gunicorn $main_file:$app_name -b 0.0.0.0:$prot  -w $workers -k uvicorn.workers.UvicornH11Worker --daemon
        ;;
    restart)
    	echo "restart: $deploy_env"
		pid=` ps -ef|grep $main_file|grep -v "grep"|awk '{print $2}'`
        for id in $pid
        do
            kill -9 $id  
        done
        cd .. 
        && BUILD_ID=dontKillMe $gunicorn_path/gunicorn $main_file:$app_name -b 0.0.0.0:$prot  -w $workers -k uvicorn.workers.UvicornH11Worker --daemon
    	;;
    stop)
    	echo "stop: $deploy_env"
		pid=` ps -ef|grep $main_file|grep -v "grep"|awk '{print $2}'`
        for id in $pid
        do
            kill -9 $id  
        done
		;;
    *)
    exit
    ;;
esac

构建任务

  • 选择要构建的版本
  • 选择要执行的操作
  • 点击开始构建

构建时的效果

0bf5507a5c72f01969c4edea32dcd498.png

构建日志

执行顺序:

  • 拉取源码
  • 执行shell
  • 构建后操作(这里没有配)

a0809e52fc399524f26ca0225a3f65ac.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值