05-11 周六 一键完成FastBuild镜像部署功能的开发

2024-05-12 15:44

本文主要是介绍05-11 周六 一键完成FastBuild镜像部署功能的开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

05-11 周六 一键完成FastBuild镜像部署功能的开发
时间版本修改人描述
2024年5月11日21:50:15V0.1宋全恒新建文档

简介

注,需要提前完成从DockerService到FastBuild主机的免密,因为脚本使用了ssh命令。

博客描述
04-22 周日 阿里云-瑶光上部署FastBuild过程(配置TLS、自定义辅助命令)-CSDN博客👍👍👍👍记录了部署FastBuild的完整过程,基本流程,该文章主要描述自动化,即使用CI工具构建镜像,并部署服务部分。
04-25 周四 FastBuild重构实践-TLS、全局捕获异常、一键配置-CSDN博客记录了第一次优化的过程,完成配置文件移入数据库
05-08 周三 FastBuild FastAPI 引入并发支持和全局捕获异常-CSDN博客记录了并发支持和全局捕获异常。解决拉取和check解耦问题以及超时问题。

脚本内容

手动执行过程

10.200.88.53/library/dros-fast-build-service:master.20240507105741-npg
docker pull 10.200.88.53/library/dros-fast-build-service:master.20240507105741-npg
docker save -o dros-fast-build-service-master-20240507105741-npg.tar 10.200.88.53/library/dros-fast-build-service:master.20240507105741-npgnerdctl load -i dros-fast-build-service-master-20240507105741-npg.tar/etc/iscos/patch/dros-fast-build/charts目录下 修改 imageTag 成最新版本
image-20240507191910270
root@iZ1pp06qu51oiqqddsrnuxZ:/etc/iscos/patch/dros-fast-build/charts# helm upgrade --install dros-fast-build-service . 
Release "dros-fast-build-service" has been upgraded. Happy Helming!
NAME: dros-fast-build-service
LAST DEPLOYED: Tue May  7 19:23:35 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
kubectl --namespace default get pod

脚本开发

 脚本名称为deploy_fb.sh,wei

#!/bin/bash # 2024年5月11日20:35:19
# 用于拉取CI的镜像,并部署到FB服务
# 注意,需要事先配置好从DockerService到FastBuild,主机的免密
# $1 内容为10.200.88.53/library/dros-fast-build-service:master.20240511122313-npg
full_image_name=$1
fb_host=10.200.88.43config_file=/etc/iscos/patch/dros-fast-build/charts/values.yaml
charts_dir=$(dirname "$config_file")if [ $# -ne 1 ]; thenecho "Usage: $0 <full_image_name>"exit 2
fiif [ -z "$1" ]; thenexit 3
fiimage_base_name=$(echo "$full_image_name" | awk -F'/' '{print $NF}')
tag=$(echo "$image_base_name" | awk -F':' '{print $2}')
new_image_tar_name=$(echo "$image_base_name" | awk -F':' '{gsub(/\./, "-", $2); gsub(/:/, "-", $1); print $1"-"$2".tar"}')echo "简单镜像名称: $image_base_name"
echo "tag名称: $tag"
echo "将要保存的镜像名称: $new_image_tar_name"
docker pull $1echo "将镜像导出成压缩包: ${new_image_tar_name}"
docker save -o $new_image_tar_name $full_image_nameecho
echoecho "将镜像压缩包: ${new_image_tar_name}拷贝到FastBuild主机"
scp $new_image_tar_name $fb_host:`pwd`
# 远程执行导入新镜像
ssh $fb_host "cd /root && nerdctl load -i $new_image_tar_name"ssh root@$fb_host "sed -i 's/imageTag:.*npg$/imageTag: $tag/g' $config_file"
echo “使用helm完成部署”
ssh root@$fb_host "cd ${charts_dir}; helm upgrade --install dros-fast-build-service ."

 在编辑脚本的时候,还是尽量使用vscode吧,不然变量名重新命名总是很容易忘记某个,导致失败,调试很花时间。

脚本使用

 使用root账户连接至10.200.88.44,在Jenkins获取新ci得到的镜像名称,然后执行如下命令即可:

image-20240511222107710
./deploy_fb.sh 10.200.88.53/library/dros-fast-build-service:master.20240511140630-npg

 脚本会自动拉取镜像,保存为tar,并传送到FastBuild主机,修改配置文件,完成部署。

总结

 能够熟练的掌握一两门编程语言真的很重要,这样可以减少许多重复性的工作,让人舒服很多。小进步可以让人有成就感。不过,不行了,今天有的太疯狂了,为单位加班到23:50了。

这篇关于05-11 周六 一键完成FastBuild镜像部署功能的开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983049

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S