shell调用Nacos的API完成配置导入

news/发布时间2024/5/14 21:02:40

文章目录

  • 1、相关API
    • 获取token
    • 创建你需要的命名空间
    • 导入配置
  • 2、脚本

1、相关API

获取token

curl -X POST http://$nacosPodIp:8848/nacos/v1/auth/users/login -d "message=true&username=nacos&password=nacos"

创建你需要的命名空间

# 注意$token的替换,这里创建个docker的namespace
curl -X POST http://$nacosPodIp:8848/nacos/v1/console/namespaces -d "accessToken=$token&message=true&customNamespaceId=docker&namespaceName=docker&namespaceDesc=docker"

导入配置

# $token替换为第一步获取到的token
# $nacosConfigFile替换为Nacos配置压缩包的绝对路径
curl --location --request POST 'http://$nacosPodIp:8848/nacos/v1/cs/configs?tenant=&accessToken=$token&username=nacos&import=true&namespace=docker&policy=ABORT' --form 'file=@"$nacosConfigFile"'

2、脚本

背景是用K8S部署了Nacos,相关资源有:

  • nacos-headless
  • sts
  • pod

这里先判断nacos的服务是否成功启动:

# 这里每隔20s轮询一次,检测到Nacos启动后开始进行导入
checkNacosPodStatus(){namespace=$1   # 命名空间echo -e "\033[32m正在等待Nacos启动....\033[0m"waitTime=0while true; dostatus=`kubectl get po -n $namespace | grep -i nacos-0 | awk '{print $3}'`if [[ $status == "Running" ]]; thenecho -e "\033[32mNacos启动成功....\033[0m"breakfiif [ $waitTime -gt 300 ]; thenecho -e "\033[31mNacos启动超时,自动取消后续的Nacos配置导入操作,请手动导入....\033[0m"breakexit 1fisleep 20waitTime=$((waitTime+20))done
}

如果Nacos启动成功,则开始导入配置。这里可取k8s服务的IP,但Nacos这里用的无头服务,没有固定IP,直接去获取Pod的IP:

nacosPodIp=`kubectl get po -n dmz nacos-0 -o jsonpath='{.status.podIP}'`

完整脚本:

function importNacosConfig(){echo -e "\033[32m即将导入Nacos配置,准备中....\033[0m"# nacos无头服务没有固定IP,这里去取podIP# nacosServiceIp=$(kubectl get svc -n dmz nacos-headless -o jsonpath='{.spec.clusterIP}')nacosPodIp=`kubectl get po -n dmz nacos-0 -o jsonpath='{.status.podIP}'`getTokenResult=`curl -X POST http://$nacosPodIp:8848/nacos/v1/auth/users/login -d "message=true&username=nacos&password=nacos"`token=`echo $getTokenResult | yq -r '.accessToken'`createNsResult=`curl -X POST http://$nacosPodIp:8848/nacos/v1/console/namespaces -d "accessToken=$token&message=true&customNamespaceId=docker&namespaceName=docker&namespaceDesc=docker"`if [[ $createNsResult == "true" ]]; thenecho -e "\033[32mNacos命名空间docker创建成功,请输入配置包的绝对地址:\033[0m"read nacosConfigFileimportResultJson=`curl --location --request POST 'http://$nacosPodIp:8848/nacos/v1/cs/configs?tenant=&accessToken=$token&username=nacos&import=true&namespace=docker&policy=ABORT' --form 'file=@"$nacosConfigFile"'`importResult=`echo $importResultJson | yq -r '.message'`if [[ $importResult == "导入成功" ]]; thenecho -e "\033[32mNacos配置导入完成!可访问https://${YOUR_HOST}:30100/nacos\033[0m"echo -e "\033[32mNacos请参照部署文档按需修改Nacos配置,键入Y/y表示修改完成:\033[0m"read editResultif [[ $editResult == "y" || $editResult == "Y" ]]; thenkubectl delete pod `kubectl get po -n namespace|grep -iEv "web|nacos"|awk '{print$1}'` -n dmzsleep 60   # 歇60秒,等后端服务重新启动,以加载最新配置fielseecho -e "\033[31mNacos配置导入失败,请手动导入!\033[0m"fielseecho -e "\033[31mNacos命名空间创建失败,请手动创建!\033[0m"exit 1fiecho}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/BtAs/2966.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

庖丁解牛-二叉树的遍历

庖丁解牛-二叉树的遍历 〇、前言 01 文章内容 一般提到二叉树的遍历,我们是在说 前序遍历、中序遍历、后序遍历和层序遍历 或者说三序遍历层序遍历,毕竟三序和层序的遍历逻辑相差比较大下面讨论三序遍历的递归方法、非递归方法和非递归迭代的统一方法然…

蓝桥杯冲C++组还是选Python组从零开始?

蓝桥杯冲C++组还是选Python组从零开始? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家…

新能源汽车整车测试解决方案-热管理测试

热管理测试(Thermal Management Test) 整车热管理主要研究对象是电驱动系统及电池系统的温度控制和驾驶室的气候调节,满足关键零部件的冷却要求,确保各零部件的安全性与可靠性,提高车厢内乘员环境的舒适性&#xff0c…

macOS上使用VScode编译配置C++语言开发环境

本文介绍macOS上使用VScode编译配置C语言开发环境 1.准备工作 安装C/C插件 2.配置c_cpp_properties.json文件 [⇧⌘P]打开命令模式,选择[C/Cpp: Edit Configurations(JSON)]命令,回车后会自动生成一个.vscode目录,目录下有一个c_cpp_prope…

WEB服务器的超级防护——安全WAF

随着网络和信息技术的不断发展,特别是互联网的广泛普及和应用,网络正在逐步改变人类的生活和工作方式。越来越多的政府和企业组织建立了依赖于网络的业务信息系统,例如电子政务、网络办公等。网络也对社会各行各业产生了巨大的影响&#xff0…

ApexRBp在线粒子传感器在电动汽车电池制造的应用

电动汽车电池的崛起与颗粒污染的挑战 随着电动汽车(EV)市场的迅速扩张,对高性能锂离子电池的需求也急剧增加。这些电池不仅是EV的心脏,更是推动其前行的核心动力。然而,在电池制造的每一个环节,都需要对多…

300分钟吃透分布式缓存-08讲:MC系统架构是如何布局的?

系统架构 我们来看一下 Mc 的系统架构。 如下图所示,Mc 的系统架构主要包括网络处理模块、多线程处理模块、哈希表、LRU、slab 内存分配模块 5 部分。Mc 基于 Libevent 实现了网络处理模块,通过多线程并发处理用户请求;基于哈希表对 key 进…

Verilog刷题笔记32

题目: A heating/cooling thermostat controls both a heater (during winter) and an air conditioner (during summer). Implement a circuit that will turn on and off the heater, air conditioning, and blower fan as appropriate. The thermostat can be i…

解析模式:“认养一头牛“是怎么做到成为国内牛奶市场的翘楚的呢?

每天五分钟讲解一个商业模式,大家好我是啊浩说模式 朋友圈里的黑马,养牛业的独角兽——认养一头牛 你可能不知道吧,有那么一款叫做“认养一头牛”的乳制品品牌,从默默无闻到一炮走红,仅仅用了几年的时间。它在蒙牛、伊…

虚拟机的四种网络模式对比

nat网络地址转换 nat网络 桥接 内网模式 仅主机

Django学习笔记-创建第一个django项目

1.创建一个虚拟环境的python项目 2.点击解释器设置 3.安装django包 4.终端选择Command Prompt 5.创建django项目运行django-admin startproject demo01(自命名) 6.修改连接数据库为mysql 7.修改语言(中国汉语)和时区(亚洲上海)USE_TZ改为False,否则时区不生效 8.修改TEMPLA…

数据库概述

目录 一、为什么使用数据库? 二、数据库与数据库管理系统 2.1 相关概念 2.2 两者关系 三、 MySQL介绍 四、 RDBMS和非RDBMS 4.1 关系型数据库(RDBMS) 4.2 非关系型数据库(非RDBMS) 五、关系型数据库设计规则 …

解决ModuleNotFoundError: No module named ‘pysqlite2‘

目录 一、问题描述: 二、问题分析: 三、问题解决: 四、参考文章: 一、问题描述: 在重新安装的anaconda环境中自建了一个新虚拟环境,再安装完jupyter后(pip install jupyter)&am…

企业微信变更企业主体的流程

企业微信变更主体有什么作用?做过企业运营的小伙伴都知道,很多时候经常会遇到现有的企业需要注销,切换成新的企业进行经营的情况,但是原来企业申请的企业微信上面却积累了很多客户,肯定不能直接丢弃,所以这…

阿里开源低代码引擎 - Low-Code Engine

阿里开源低代码引擎 - Low-Code Engine 本文主要介绍如何在Windows运行/开发阿里开源低代码引擎 - Low-Code Engine 详细文档参见【 阿里开源低代码引擎 - Low-Code Engine 官方文档】 目录 阿里开源低代码引擎 - Low-Code Engine一、环境准备1、使用 WSL 在 Windows 上安装 L…

golang 监听ip数据包(golang纯享版)

golang 监听ip数据包(golang纯享版) 【注】本机编译运行平台为linux,如需测试代码请移至linux平台进行代码测试 本文以ip4 作为案例进行包抓取示范,ip6抓取与ip4方式异曲同工,可自行举一反三得出 第一步,通过wireshark抓包拿到…

Pytorch 配置 GPU 环境

1、Pytorch 深度学习跑代码的时候,因为简单的操作不适合cpu运行,我们更习惯用GPU加速代码。 本章将介绍怎么安装pytorch的gpu环境,以及常见的问题 关于conda的安装,参考之前文章:深度学习环境配置:Anaco…

121. 买卖股票的最佳时机

121. 买卖股票的最佳时机 原题链接:完成情况:解题思路:参考代码:_121买卖股票的最佳时机_贪心递推_121买卖股票的最佳时机_动态规划_01_121买卖股票的最佳时机_动态规划_02_121买卖股票的最佳时机_动态规划_一维数组 错误经验吸取…

Jmeter基础(1) Mac下载安装启动

目录 Jmeter下载安装启动下载启动 Jmeter下载安装启动 注意⚠️:使用jmeter需要有java环境 下载 官网下载地址:https://jmeter.apache.org/ 会看到这里有两个版本,那么有什么区别么? Binaries是可执行版,直接下载解…

Flink 深入理解任务执行计划,即Graph生成过程(源码解读)

深入理解Graph生成过程 1生成StreamGraph2生成JobGraph3生成ExecutionGraph:4生成物理执行图:5 批处理的物理执行计划同源实例的并行执行 我们先看一下,Flink 是如何描述作业的执行计划的。以这个 DataStream 作业为例,Flink 会基…
推荐文章