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

网络营销课程主要讲什么内容海淀seo搜索引擎优化公司

网络营销课程主要讲什么内容,海淀seo搜索引擎优化公司,四川网站建设那家好,用VS做的网站怎么连接数据库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(){# pid=`jps -l|grep $APP_NAME|grep -v grep|awk '{print $1}'` >> 此次获取java进程pid <<pid=`curl 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.port=8181 >/dev/null 2>&1 & >> 此处启动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 running"fi  
}#输出运行状态
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" in"start")start;;"stop")stop;;"status")status;;"restart")restart;;"upgrade")upgrade;;"rollback")rollback;;*)usage;;
esac

2.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"+"\n"return msg@app.route("/pid")
def pid():msg = str(os.getpid()) + "\n"return msgif __name__ == '__main__':app.run(port=10080,host="0.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.tj-hxxt.cn/news/63217.html

相关文章:

  • 电商类网站怎么做 seo广告推广有哪些平台
  • 网站怎么做微信送红包活动百度下载安装2021最新版
  • 上海市工程建设标准化信息网站网站关键字优化
  • 广告设计专业课程抖音seo排名系统
  • 做视频素材怎么下载网站中国免费网站服务器下载
  • 枣强网站建设公司360竞价推广怎么做
  • wordpress 3.8.2北京seo实战培训班
  • wordpress职场博客百度seo指数查询
  • 青海网站建设公司哪家好十堰seo优化
  • 哈尔滨无障碍网站建设网络推广推广培训
  • 宁波网站建设服务东莞网站推广排名
  • 江苏专业的网站建设百度竞价关键词价格查询
  • 苏州网站建设制作公司小程序开发网络营销方式有哪几种
  • wordpress主题添加一个自定义页面廊坊seo排名公司
  • 买了域名之后怎么用优化营商环境 提升服务效能
  • 做it的网站推广文案怎么写吸引人
  • 购买qq空间访客的网站线上宣传渠道和宣传方式
  • 电子工程网站大全百度推广是什么工作
  • 网站维护的页面星链seo管理
  • 集团网站建设的要求企业软文营销
  • 护卫神做的网站访问浏览器直接进入网站的注意事项
  • java培训班出来的都怎么样了优化资讯
  • 网站域名的用处网络营销就是
  • 青海公路建设服务网站seo国外推广软件
  • 龙华三网合一网站建设seo软件下载
  • 为什么做电商网站win10优化大师官网
  • app免费模板下载网站南昌seo数据监控
  • 怎么在云服务器上搭建网站国外网站加速
  • 网站建设中的注册和登录页面seo优化工作内容做什么
  • 写作网站新手关键词吉他谱