手把手教你编写脚本批量实现k8s镜像部署
背景日常工作过程中,避免不了经常遇到很多需要手工进行的重复劳动,如果我们可以凭借自己勤劳的双手和聪明的智慧编写一些小工具或者脚本,这样我们就可以节省大量的时间,用来duo'ka
·
背景
日常工作过程中,避免不了经常遇到很多需要手工进行的重复劳动,如果我们可以凭借自己勤劳的双手和聪明的智慧编写一些小工具或者脚本,这样我们就可以节省大量的时间,用来多看看新闻、刷刷头条,不香吗?
系统架构
基于java的后端应用,maven管理依赖及打包,基于gitlab代码托管,基于k8s运维部署,采用skaffold打包并推送镜像。
Skaffold是一款命令行工具,旨在促进Kubernetes应用的持续开发。你可以在本地迭代应用源码,然后将其部署到本地或者远程Kubernetes集群中。Skaffold会处理构建、上传和应用部署方面的工作流。它通用可以在自动化环境中使用,例如CI/CD流水线,以实施同样的工作流,并作为将应用迁移到生产环境时的工具 。
早期的日常流程是开发代码、提交到gitlab、更新代码、maven打包、生成并推送镜像。。,接下来我们实现一个shell命令行脚本,帮助我们批量完成这些任务。
首先在工程workspace目录下,定义一个project.txt文件,里面定义本次要部署的工程目录名称。脚本在执行时会读取文件的内容,并遍历。
@echo off
title 本地构建镜像脚本
color 3
echo;
echo 开始构建
setlocal enabledelayedexpansion
for /f %%i in (project.txt) do (
cd %%i
echo 切换到release分支并更新代码
call git checkout release
call git pull
echo;
echo 编译打包:mvn clean package
call mvn clean package
echo;
echo 构建镜像并输出执行结果至文件:skaffold build -p test -n dev
call skaffold build -p test -n dev>../%%i.txt
cd ..
echo;
set /a line=0
echo 开始遍历%%i.txt
for /f "tokens=*" %%j in (%%i.txt) do (
set /a line+=1
if !line!==2 (
echo %%j > %%i-temp.txt
)
)
for /f "tokens=4 delims=:" %%k in (%%i-temp.txt) do (
echo %%k > %%i-image.txt
del %%i.txt
del %%i-temp.txt
)
echo;
)
echo;
pause
这样,一个简单的批量执行脚本就编写完成了,可以用类似的思路实现多种脚本,如批量更新、合并代码,批量编译、批量打包等等。如批量更新代码:
@echo off
title 开发环境发布脚本
color 3
echo;
echo 开始构建
for /f %%i in (project.txt) do (
echo 开始build %%i
echo;
cd %%i
echo 切换到develop分支并更新代码
call git checkout develop
call git pull
echo;
)
echo;
pause
一个小工具编写思路分享给大家,欢迎支持!共同学习!
更多推荐
已为社区贡献1条内容
所有评论(0)