提交nacos配置的另一种一种方法,批命令/shell:
以下脚本直接把当前目录下的所有yaml文件一键提交到nacos上
前提是要先安装curl 以及 jq 然后
把下面的shell保存为 import-all.sh 然后 chmod +x import-all.sh && ./import-all.sh 就好了.
记得修改一下的NAMESPACE_NAME与GROUP.
#!/bin/bash
clear
set -e
# Nacos 服务器地址
NAOS_URL="http://127.0.0.2:8848"
NAMESPACE_NAME="dev"
GROUP="trydone"
USERNAME="nacos"
PASSWORD="nacos"
namespace_id=""
# 查询命名空间 ID
echo "查询命名空间 ID,名称为: $NAMESPACE_NAME"
namespace_id=$(curl -s -u "${USERNAME}:${PASSWORD}" "${NAOS_URL}/nacos/v1/console/namespaces" | jq -r --arg NAMESPACE_NAME "$NAMESPACE_NAME" '.data[] | select(.namespaceShowName==$NAMESPACE_NAME) | .namespace')
if [ -z "$namespace_id" ]; then
echo "未找到命名空间 '$NAMESPACE_NAME' 的 ID。退出。"
exit 1
fi
echo "找到命名空间 ID: $namespace_id"
# 遍历当前目录下的所有 .yaml 文件
for file in *.yaml; do
if [ -f "$file" ]; then
# 获取文件名(不包含扩展名)
dataId=$(basename "$file" .yaml)
# 读取文件内容并进行 URL 编码
content=$(cat "$file" | jq -sR . | jq -r @uri)
# 使用 curl 将配置文件上传到 Nacos
echo "正在将 $file 导入到 Nacos..."
curl -X POST "${NAOS_URL}/nacos/v1/cs/configs" \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "${USERNAME}:${PASSWORD}" \
-d "dataId=${dataId}.yaml&group=${GROUP}&namespaceId=${namespace_id}&appName=&config_tags=&tenant=${namespace_id}&content=${content}&type=yaml"
echo "已导入 $file"
echo "-----------------------------"
fi
done
echo "所有 YAML 文件已导入到 Nacos。"
然后就没有然后了,就是这么丝滑.