nacos
buyfakett
nacos
可以用作微服务的管理,也可以存配置文件
#!/bin/bash
docker kill nacos
docker rm nacos
docker run --name nacos -d \
--net host \
--restart=always \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v $(pwd)/data/:/home/nacos/data/ \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_TOKEN_EXPIRE_SECONDS=86400 \
-e NACOS_AUTH_TOKEN=dnN5T2wxVld4TzdRQjFoekNvMnBnRUxxSUpVRU5kSU4= \
-e NACOS_AUTH_CACHE_ENABLE=false \
-e NACOS_AUTH_IDENTITY_VALUE=vfmY1wdxXfXi0ogB \
-e NACOS_AUTH_IDENTITY_KEY=qYEglRrmYbudPpjd \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-e MODE=standalone \
nacos/nacos-server:v2.4.1
#!/bin/bash
function install_nacos() {
mkdir -p /data/app/nacos/
NACOS_AUTH_TOKEN=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 32)
NACOS_AUTH_TOKEN_BASE_64=$(echo -n "$NACOS_AUTH_TOKEN" | base64)
NACOS_AUTH_IDENTITY_VALUE=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 16)
NACOS_AUTH_IDENTITY_KEY=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 16)
cat << EOF > /data/app/nacos/setup.sh
#!/bin/bash
docker kill nacos
docker rm nacos
docker run --name nacos -d \\
--net host \\
--restart=always \\
-v /etc/localtime:/etc/localtime:ro \\
-v /etc/timezone:/etc/timezone:ro \\
-v \$(pwd)/data/:/home/nacos/data/ \\
-e NACOS_AUTH_ENABLE=true \\
-e NACOS_AUTH_TOKEN_EXPIRE_SECONDS=86400 \\
-e NACOS_AUTH_CACHE_ENABLE=false \\
-e NACOS_AUTH_TOKEN=${NACOS_AUTH_TOKEN_BASE_64} \\
-e NACOS_AUTH_IDENTITY_VALUE=${NACOS_AUTH_IDENTITY_VALUE} \\
-e NACOS_AUTH_IDENTITY_KEY=${NACOS_AUTH_IDENTITY_KEY} \\
-e JVM_XMS=512m \\
-e JVM_XMX=512m \\
-e MODE=standalone \\
nacos/nacos-server:v2.4.1
sleep 30
# 初始化密码
curl -s -X POST 'http://${NACOS_ADDR}/nacos/v1/auth/users/admin' -d 'username=nacos&password=${NACOS_PASSWORD}'
# 创建命名空间
nacos_accessToken=\$(curl -X POST -s "http://${NACOS_ADDR}/nacos/v1/auth/login" -d "username=nacos&password=${NACOS_PASSWORD}" | grep -o '"accessToken":"[^"]*"' | cut -d':' -f2 | tr -d '"')
curl -s -X POST http://${NACOS_ADDR}/nacos/v1/console/namespaces \\
-H "Authorization: Bearer \${nacos_accessToken}" \\
-d 'customNamespaceId=${NAMESPACE}&namespaceName=${NAMESPACE}&namespaceDesc=${NAMESPACE}'
# ${NACOS_AUTH_TOKEN} base加密
EOF
chmod +x /data/app/nacos/*.sh
cd /data/app/nacos/
/bin/bash /data/app/nacos/setup.sh
}
NACOS_ADDR=192.168.1.1:8848
NACOS_PASSWORD=password
NAMESPACE=test
install_nacos
TIP
NACOS_AUTH_TOKEN
参数需要使用openssl rand -base64 32
来生成