明文密码切换到密文密码
操作步骤:
环境准备
登陆 ONES 服务器,进入当前运行中实例的安装目录
cd /data/ones/pkg/ones-example-3.14.xxxxx
下载config-proxy
工具
如果需要修改加密的 key 可以自行编译 config-proxy 工具,请参考:https://github.com/BangWork/ones-tools/tree/hotfix_370024/secret-config-proxy
curl -O https://res.ones.pro/script/k3stool/config-proxy.tar.gz
tar -xzvf config-proxy.tar.gz
修改配置
修改需要 config-proxy 配置文件,逐个将需要加密的密码对应的密文写入配置文件
密文需要使用 config-proxy 生成,生成方式参考:https://github.com/BangWork/ones-tools/tree/hotfix_370024/secret-config-proxy
config-proxy/bin/config-proxy -config config-proxy/conf/config-proxy.json -encrypt "明文密码"
# 返回密文,写入config-proxy/conf/config-proxy.json
thU3Q+qPKeMyTSddkaRpow==
- 修改后的配置文件如下:
[root@ones-test ones-example-3.14.xxxxx]# cat config-proxy/conf/config-proxy.json
{
"replace_sep_map":{
"{{.MySQLPassword}}": "k/3Ld+HWWwwApTTp5HmeEA==",
"{{.RedisPassword}}": "thU3Q+qPKeMyTSddkaRpow==",
"{{.OwnerPassword}}": "GVaph5tYPhGDINEBbfbuwQ==",
"{{.MySQLRootPassword}}":"fmEiWtfkpSnNfxInYPT9tw==",
"{{.MySQLOpenPlatformPassword}}":"fmEiWtfkpSnNfxInYPT9tw=="
},
"default_sep": "{{.MySQLPassword}}"
}
拷贝工具文件并修改配置
- 将
config-porxy
工具和config-proxy.json
工具配置文件拷入到现有的容器中
# 进入容器
./onesconfigure e
# 执行创建目录的命令
mkdir -p /usr/local/ones-ai-config-proxy/conf/ /usr/local/ones-ai-config-proxy/bin
# 退出容器
exit
# 将工具和配置文件拷贝到对应的目录
containerID=$(docker ps |grep $(./json-util -config config.json -operator select -key deploy_name) | grep '0.0.0.0:'$(./json-util -operator select -key port -config ./config.json)'->' | awk '{print $1}')
docker cp config-proxy/conf/config-proxy.json $containerID:/usr/local/ones-ai-config-proxy/conf/config.json
docker cp config-proxy/bin/config-proxy $containerID:/usr/local/ones-ai-config-proxy/bin
- 修改容器内/data/conf/options.json 文件的
MySQLPassword、MySQLRootPassword、OwnerPassword
这三个配置成占位符
其他的配置不需要处理,如果不修改这三个配置那么最后升级之后还是明文的密码。
修改后如下:
- 修改 ones 工作目录的 config.json
将需要加密的地方修改成对应的占位符,(具体哪些密码需要加密视情况而定)
- 往配置文件 config.json 内添加这两个参数
"password_encryption_type": 2, # 1 为招商环境的加密,2 为荣耀环境的加密,此处填 2
./json-util -config config.json -operator add -key password_encryption_type -valtype number -value 2
./json-util -config config.json -operator add -key is_use_proxy_config -valtype bool -value true
./json-util -config config.json -operator add -key proxy_config_path -valtype string -value config-proxy/conf/config-proxy.json
执行升级
containerID=$(docker ps |grep $(./json-util -config config.json -operator select -key deploy_name) | grep '0.0.0.0:'$(./json-util -operator select -key port -config ./config.json)'->' | awk '{print $1}')
./onesconfigure update $containerID -r