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

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文