logo
tt's Note
  • 运维
    • 数据库
    • linux
    • vpn
    • 日志
    • 中间件
    • 服务
    • 监控
    • shell
    • windows
    • 语言
    • 云服务
    • 其他
  • 开发
    • 工具
  • 软件
    • 浏览器
    • 多端
    • win
    • mac
    • 网站
  • 项目
    • 效率工具
    • 兴趣
  • 脚本
    • jenkins
    服务概览
    ansible
    chrony时间服务器
    dnsmasq
    ffmpeg
    frp
    ftp
    gitea
    gitlab
    jenkins
    lsyncd
    minio(私有化oss)
    nacos
    nexus3(私有仓库)
    ossftp
    redmine
    registry(docker私有仓库)
    saltstack
    svn
    上一页minio(私有化oss)下一页nexus3(私有仓库)

    #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来生成