当前位置: 首页 > news >正文

网站开发和嵌入式开发湖南网址大全

网站开发和嵌入式开发,湖南网址大全,万网网站开发,乐都企业网站建设Jenkins- CICD流水线 python/Java代码升级与回退 1、执行思路 1.1、代码升级 jenkins上点击 upgrade和 代码版本号 --${tag} jenkins 推送 代码 和 执行脚本 到目标服务器/opt目录下 执行命令 sh run.sh 代码名称 版本号 upgrade 版本号 来自jenkins的 构建参数中的 标签…Jenkins- CICD流水线 python/Java代码升级与回退 1、执行思路 1.1、代码升级 jenkins上点击 upgrade和 代码版本号 --${tag} jenkins 推送 代码 和 执行脚本 到目标服务器/opt目录下 执行命令 sh run.sh 代码名称 版本号 upgrade 版本号 来自jenkins的 构建参数中的 标签参数标签值从gitee处获取 run.sh 升级代码执行逻辑 1、在目标服务器上 新代码名称标签 cp 到 bak目录下 2、停服新代码 mv 到执行目录下启动 1.2、代码回退 jenkins上点 rollbak 和 代码版本号 run.sh 回退代码执行逻辑 停服cp bak/代码-版本号 到执行目录启动 2、gitee代码如下 run.sh 执行脚本 test_flask.py python代码 2.1、执行脚本run.sh代码如下 #!/bin/bash# cd dirname $0 APP_NAME$1 APP_file/opt/test/${APP_NAME} tag$2#使用说明用来提示输入参数 usage() {echo Usage: ./run.sh [start|stop|status|restart|upgrade]exit 1 }#检查程序是否在运行 is_exist(){# pidjps -l|grep $APP_NAME|grep -v grep|awk {print $1} 此次获取java进程pid pidcurl localhost:10080/pid 2/dev/null#如果不存在返回1存在返回0 if [ -z ${pid} ]; thenecho pid不存在return 1elsereturn 0fi }#启动方法 start(){echo ${APP_file} is starting ...is_existif [ $? -eq 0 ]; thenecho ${APP_file} is already running. pid${pid}else# nohup java -Xmx100m -Xms100m -jar ${APP_file} --server.port8181 /dev/null 21 此处启动java jar包 nohup python3 test/test_flask.py echo START...sleep 5is_existif [ $? -eq 0 ]; thenecho ${APP_file} is running success. pid${pid}fifi }#停止方法 stop(){echo ${APP_file} is stopping ...is_existif [ $? -eq 0 ]; thenkill -15 $pidecho ...sleep 2is_existif [ $? -eq 0 ]; thenecho ${APP_file} still in the running. pid${pid}elseecho ${APP_file} has stopped running.fielseecho ${APP_file} is not runningfi }#输出运行状态 status(){is_existif [ $? -eq 0 ]; thenecho ${APP_file} is running. Pid is ${pid}elseecho ${APP_file} is NOT running.fi }#重启 restart(){echo ${APP_file} is restarting ...stop#sleep 5start }#程序升级 #upgrade(){ # ./run.sh stop # cd .. # mv $APP_NAME $backup # cp $rjxf ./ # ./bin/run.sh start #}upgrade(){cd /opt/cp ./${APP_NAME} ./bak/${APP_NAME}-${tag}./run.sh ${APP_NAME} ${tag} stopmv ${APP_NAME} test/${APP_NAME}./run.sh ${APP_NAME} ${tag} start;exit }rollback(){cd /opt/./run.sh ${APP_NAME} ${tag} stopcp ./bak/${APP_NAME}-${tag} test/${APP_NAME}./run.sh ${APP_NAME} ${tag} startecho slepp 5s ...sleep 5 }#根据输入参数选择执行对应方法不输入则执行使用说明 case $3 instart)start;;stop)stop;;status)status;;restart)restart;;upgrade)upgrade;;rollback)rollback;;*)usage;; esac2.1、python代码如下 from flask import Flask import time,osapp Flask(__name__)app.route(/) def status():msg time.strftime(%Y-%m-%d %H:%M:%S)\tMyPid: str(os.getpid())\tv2.1.0\nreturn msgapp.route(/pid) def pid():msg str(os.getpid()) \nreturn msgif __name__ __main__:app.run(port10080,host0.0.0.0)2.3、pipeline流水线Jenkinsfile配置如下 pipeline {agent anystages {stage(代码部署) {when {expression { params.ACTION upgrade}}steps {script {echo 从git上拉取代码checkout scmGit(branches: [[name: */master]], extensions: [], userRemoteConfigs: [[credentialsId: c2b40745-be98-4627-93af-5cc975b0e355, url: https://gitee.com/****/test.git]])echo 新代码tag标签 推送到目标服务器备份目录下sshPublisher(publishers: [sshPublisherDesc(configName: aly-arm, transfers: [sshTransfer(cleanRemote: false, excludes: , execCommand: , execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: [, ], remoteDirectory: , remoteDirectorySDF: false, removePrefix: , sourceFiles: test_flask.py,run.sh)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])sshPublisher(publishers: [sshPublisherDesc(configName: aly-arm, transfers: [sshTransfer(cleanRemote: false, excludes: , execCommand: cd /opt;chmod x run.sh;sh run.sh test_flask.py ${tag} ${ACTION};exit, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: [, ], remoteDirectory: , remoteDirectorySDF: false, removePrefix: , sourceFiles: ,usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}}stage(代码回退) {when {expression { params.ACTION rollback}}steps {script {sshPublisher(publishers: [sshPublisherDesc(configName: aly-arm, transfers: [sshTransfer(cleanRemote: false, excludes: , execCommand: cd /opt;sh run.sh test_flask.py ${tag} ${ACTION};exit, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: [, ], remoteDirectory: , remoteDirectorySDF: false, removePrefix: , sourceFiles: ,usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}}} }3、Jenkins配置 3.1、添加2个构建化参数 1、选项参数用于选择upgrade升级或者rollback回退 2、git参数用于从gitee上拉取对于标签的值 3.2、添加流水线配置 3.3、执行
http://www.hkea.cn/news/14435286/

相关文章:

  • 重庆免费发布信息网站sem推广是什么意思
  • 网站模板 手机app展示贵阳市观山湖区建设局网站
  • 黄冈市建设信息网站郑州市建设工程信息网站
  • 做网站寄生虫需要哪些东西带平台的房子装修图片大全
  • 唐山网站制作价格泾川县建设局网站
  • 营销类网站建设网站设计论文的参考文献
  • 北京网站建设飞沐微信公众平台小程序怎么发布
  • 官方网站下载水印相机网站设计是什么
  • 网站开发公司资讯云主机搭建wordpress
  • 用什么网站做浏览器主页飞鸿网架公司
  • 网站建设 ui设计公司做网站图片用什么格式最好
  • 重庆企业网站建设联系电话百度一下手机版网页
  • 自己的网站怎么做团购唐山高端网站建设公司
  • 网站建设副业郑州网站建设 .cc
  • 建设进出口外贸网站做网站做那一网站好
  • 城阳建设局网站wordpress商业用途
  • 域名上面怎么建设网站济南手机网站建设
  • 哪个网站做物业贷企业运营管理岗位职责
  • 曲靖市建设局网站官网网站不备案访问
  • 做网站费用滁州定制化开发
  • 邯郸学校网站建设价格网站开发及流行框架
  • 怎么做网站免费企业门户网站建设精英
  • 手机开发软件app的工具山东济南seo整站优化公司
  • 电商网站商品属性设计关闭wordpress注册功能
  • 互动科技 网站中铁三局招聘信息2023
  • 舟山市建设信息港网站app开发报价单及方案
  • 网站制作那家便宜外贸网站英文版
  • 湖南省重点建设项目办公室网站网站怎样才有流量
  • 怎么区分网站的好坏做网站如何赚广费
  • 什么是同ip网站网站底部 设计