iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Jenkins版本迭代以及回滚
  • 337
分享到

Jenkins版本迭代以及回滚

版本迭代Jenkins 2023-01-31 08:01:43 337人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

在上一篇文章,链接如下:https://www.cnblogs.com/xiao987334176/p/11434849.html 镜像打的是latest版,如果需要回滚的话,就比较麻烦了。因此,需要修改为参数化构建。镜像的版本,

在上一篇文章,链接如下:

https://www.cnblogs.com/xiao987334176/p/11434849.html

 

镜像打的是latest版,如果需要回滚的话,就比较麻烦了。

因此,需要修改为参数化构建。镜像的版本,使用时间戳。

本文采用的环境,依然是上一篇的环境,就不多介绍了。

发布

修改 ph任务,勾选 此项目参数化构建,点击添加参数,选择Choice Parameter

1.png

 

输入参数,这里有2个固定选项,分别是发布和回滚,再点击底部的添加参数,选择String Parameter

1.png

 

输入参数,这个版本号,就是来回滚的。

1.png

 

 

再进入到Bulid,修改执行命令

case $Status  in
  Deploy)
    echo "Status:$Status"
    bash -x /root/Docker_dir/deploy_docker.sh
    echo "Completing!"
    ;;
  Rollback)
      echo "Status:$Status"
      echo "Version:$Version"
      bash -x /root/docker_dir/rollback_docker.sh
      echo "Completing!"
      ;;
  *)
  exit
      ;;
esac


 

效果如下:

1.png

 

 

修改3个shell脚本

deploy_docker.sh

#!/bin/bash

set -e
harbor_project="java"
projectName=$JOB_NAME
docker_path=${WORKSPACE}
appName=${JOB_NAME}.jar

# harbor认证用户
user_name=jenkins
passWord=Jenkins@1234

# harbor地址以及tag
tag=$(date +%s)
harbor_server=192.168.10.122
server_path=${harbor_server}
taget_image=${projectName}:${tag}
#${BUILD_NUMBER}
echo ${taget_image}

# 登录docker
cd ${docker_path}
sudo docker login ${harbor_server} -u ${user_name} -p ${password}

# 生成镜像并推送到harbor,最后删除本地镜像
cp ${WORKSPACE}/target${taget_image}/g" ${CONF_DIR}/${projectName}-rc.yaml


sed命令解释:

${projectName}:[^.]*   表示匹配 项目名:任意长度内容。

 

rollback_docker.sh

#!/bin/bash

# 替换yaml中镜像的版本号
MASTER="192.168.10.130"
CONF_DIR="/root/kube-conf"
projectName=${JOB_NAME}
taget_image=${JOB_NAME}:${Version}

ssh ${MASTER} sed -i "s/${projectName}:[^.]*/${taget_image}/g" ${CONF_DIR}/${projectName}-rc.yaml


 

reboot_app.sh

#!/bin/bash
MASTER="192.168.10.130"
CONF_DIR="/root/kube-conf"
ProJ=${JOB_NAME}

#scp ${WORKSPACE}/*.yaml ${MASTER}:${CONF_DIR}
# Pod running process
RUN=$(ssh $MASTER kubectl get po|grep -w ${ProJ}|wc -l)
if [ $RUN -eq 0 ];then
    ssh ${MASTER} kubectl apply -f ${CONF_DIR}/${ProJ}-rc.yaml
    ssh ${MASTER} kubectl apply -f ${CONF_DIR}/${ProJ}-service.yaml
else
    # Delete and Apply
    ssh ${MASTER} kubectl delete -f ${CONF_DIR}/${ProJ}-rc.yaml
        ssh ${MASTER} kubectl delete -f ${CONF_DIR}/${ProJ}-service.yaml
    ssh ${MASTER} kubectl apply -f ${CONF_DIR}/${ProJ}-rc.yaml
        ssh ${MASTER} kubectl apply -f ${CONF_DIR}/${ProJ}-service.yaml
fi


 

点击下面的保存

1.png

 

 

点击Build with Parameters,选择Deploy,版本不用输入,默认即可。点击开始构建

1.png

 

等待任务构建完成后,查看harbor仓库中的ph项目,发现tag就是时间戳。

1.png

 

 

登陆到k8s的master节点,查看运行中的pod

root@k8s-master:~/kube-conf# kubectl describe po ph-rc-xzbjn 
Name:           ph-rc-xzbjn
Namespace:      default
Priority:       0
node:           k8s-node1/192.168.10.131
Start Time:     Sun, 29 Sep 2019 17:54:43 +0800
Labels:         app=ph
Annotations:    cni.projectcalico.org/podIP: 192.168.36.99/32
Status:         Running
IP:             192.168.36.99
Controlled By:  ReplicationController/ph-rc
Containers:
  ph:
    Container ID:   docker://a403c9051a3aef451b80fae8765b5380029b36073bbf7f87d8d30f20efd2ee77
    Image:          192.168.10.122/java/ph:1569749673


可以发现,镜像已经是指定的版本了。

 

多点击几次 Build with Parameters,查看harbor的镜像列表

1.png

 

 

假设说,现在k8s的ph项目使用的版本是 1569749522,发现有问题,需要回滚到上一个版本1569749773。

点击  Build with Parameters,选择Rollback,输入版本号。

1.png

 

 

查看构建任务的控制台输出

1.png

 

 

登录到k8s master节点,查看运行的pod,镜像是否更换了。

root@k8s-master:~/kube-conf# kubectl describe po ph-rc-rjf2w 
Name:           ph-rc-rjf2w
Namespace:      default
Priority:       0
Node:           k8s-node1/192.168.10.131
Start Time:     Sun, 29 Sep 2019 19:38:37 +0800
Labels:         app=ph
Annotations:    cni.projectcalico.org/podIP: 192.168.36.100/32
Status:         Running
IP:             192.168.36.100
Controlled By:  ReplicationController/ph-rc
Containers:
  ph:
    Container ID:   docker://60cf0d1bd21c1f67ddad1ccf6b554111d99d3206e1cb09574fa1cf793540e268
    Image:          192.168.10.122/java/ph:1569749773


发现已经,更改过来了。

 

 

本文参考链接:

Https://www.jianshu.com/p/af5fecaa8357


--结束END--

本文标题: Jenkins版本迭代以及回滚

本文链接: https://www.lsjlt.com/news/193616.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Jenkins版本迭代以及回滚
    在上一篇文章,链接如下:https://www.cnblogs.com/xiao987334176/p/11434849.html 镜像打的是latest版,如果需要回滚的话,就比较麻烦了。因此,需要修改为参数化构建。镜像的版本,...
    99+
    2023-01-31
    版本 迭代 Jenkins
  • JDK的版本迭代特性(JDK9 - JDK20)
    文章目录 1. 发布特点2. 名词解释Oracle JDK和Open JDKJEPLTS 3. 各版本支持时间路线图4. 各版本介绍jdk 9jdk 10jdk 11jdk 12jdk 13jdk 14jdk 15jdk 16...
    99+
    2023-08-17
    java jvm 开发语言
  • 怎样理解Python迭代对象和迭代器以及生成器
    这篇文章将为大家详细讲解有关怎样理解Python迭代对象和迭代器以及生成器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在了解Python的数据结构时,容器(container)、可迭代对象...
    99+
    2023-06-17
  • 升级Win10 14316版本后如何回滚到Win10 10586版本
    微软在不久前发布了Win10一周年更新预览版14316,新版本增加了不少实用的功能,不过预览版终究是预览版,不稳定的情况还是比较多的。因此不少用户在升级Win10 14316后,都想要回滚到之前的win10正式版1058...
    99+
    2023-05-20
    Win10 14316版本
  • MySQL的版本以及版本号是什么
    MySQL的版本以及版本号是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。针对不同的用户, MySQL 分为两个版本:My...
    99+
    2024-04-02
  • 迭代器的应用以及说明的问题
    一般使用for循环的顺序:   先创建一个迭代器:列表,并且列表内已存在数据   接着使用 for循环遍历列表   但这样存在一个问题,假如列表内的数据量很大,这样还未使用for循环便已经被列表占用很大的资源 这时我们就可以将这个迭代器做...
    99+
    2023-01-30
    迭代
  • windows11怎么退回以前的版本
    这篇文章主要介绍“windows11怎么退回以前的版本”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows11怎么退回以前的版本”文章能帮助大家解决问题。windows11退回以前的版本的方...
    99+
    2023-07-01
  • 【Linux 升级Openssh以及Openssl版本】
    文章目录 前言一、升级openSsl1、查看`openssl`版本2、下载并解压3、编译安装 二、升级openSsh1、下载openssh-9.0p1.tar.gz2、解压压缩包3、删除原...
    99+
    2023-09-04
    linux 服务器 运维 ssh
  • python和numpy matplotlib版本匹配,以及安装指定版本库
    python和numpy matplotlib版本匹配,以及安装指定版本库 文章目录 python和numpy matplotlib版本匹配,以及安装指定版本库一、卸载二、安装三、验证 ...
    99+
    2023-09-10
    python numpy matplotlib
  • 多版本Python共存,以及pip对应
    多版本Python共存[支持使用pip安装包] 有时特殊需要会要用到高版本的Python, 但是系统自带的版本又是很多其他工具依赖的, 不能随意更新。 所以就会考虑安装另一个版本的python环境, 然后需要用到这个版本时就在脚本头部指明 ...
    99+
    2023-01-31
    版本 Python pip
  • 如何利用GitLab进行项目版本发布和回滚
    如何利用GitLab进行项目版本发布和回滚引言:在软件开发过程中,项目的版本发布和回滚是开发团队必不可少的一项工作。GitLab是一款功能强大的版本控制系统,它提供了丰富的功能和工具来管理和发布项目的不同版本。本文将介绍如何利用GitLab...
    99+
    2023-10-22
    回滚 gitlab 版本发布
  • JVM的基本介绍以及垃圾回收
    目录JVM java虚拟机JVMjvm主要组成部分及其作用JVM Stack: jvm栈堆:Jvm heap内存空间划分Full GC一、OOM含义:二、监控GC命令总结JVM ja...
    99+
    2024-04-02
  • MacOS12及以上版本安装PHP,配置Nginx
      自Macos12版本开始,php不再内置,需要自己安装,自己安装过程中遇到了一些问题,在这个帖子做一个详细的安装过程及可能遇到的问题与解决办法的总结。 一、安装PHP 这里通过homebrew进行安装,如果没有homebrew的话,可以...
    99+
    2023-08-30
    php 开发语言 macos
  • pycharm中代码回滚到指定版本的两种实现方法(附带截图展示)
    目录第一种方法:采用git命令操作第二种方法:采用pycharm操作总结第一种方法:采用git命令操作 1、例如仓库中有下面的代码(版本1) 2、现在继续编写代码,并且提交到远程仓...
    99+
    2024-04-02
  • Mysql5.7及以上版本ONLY_FULL_GROUP_BY报错怎么办
    这篇文章主要介绍Mysql5.7及以上版本ONLY_FULL_GROUP_BY报错怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!近期在开发过程中,因为项目开发环境连接的mysq...
    99+
    2024-04-02
  • Linux查看CUDA版本以及nvcc: command not found
    在日常使用中,在配置镜像以及使用开源网站时经常需要查询CUDA版本,版本也确实十分的重要。一般的我们有三种常见的查询方式。 查看当前Cuda的版本,即实际安装的Cuda版本 nvcc -V(nvcc ...
    99+
    2023-09-25
    linux python 运维
  • Ubuntu系统安装opencv的python版本以及编译安装C++版本
    目录 1.opencv的python 版本安装方式(python版本可以直接安装,无需编译) (1)方法一:利用pip的方式安装 (2)方法二:利用apt-get方式安装  2.opencv的C++版本的安装方式(以3.4.12版本为例,其...
    99+
    2023-10-24
    python opencv ubuntu
  • 下载python3.10版本pycharm仍显示python3.1以及官网如何下载旧版版本python
    Day01新手小白学python 第二节 安装Pycharm以及遇到的问题 目录 Day01新手小白学python 前言 一、pycharm下载安装 二、遇到的问题 1.下载的是python3.10版本仍显示python3....
    99+
    2023-09-14
    python
  • python3.10及以上版本编译安装ssl模块
    前言 由于python3.10之后版本不在支持libressl使用ssl,需要使用openssl安装来解决编译安装python时候遇到的ssl模块导入失败的问题,这里需要用的openssl1.1....
    99+
    2023-09-03
    ssl perl python
  • python如何实现列表以及迭代器的压缩和解压缩
    这篇文章主要介绍了python如何实现列表以及迭代器的压缩和解压缩,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。列表以及迭代器的压缩和解压缩...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作