忘记 Manager 的 admin 密码后,重置 admin 密码的方法

  其他常见问题
内容纲要

概要描述


鉴于有部分情况,管理员会忘记 TDH Manager 的 admin 用户密码,本文总结了在忘记 admin 用户密码的情形下,如何重置 admin 用户密码。

详细说明


由于不同版本和模式下,Manager 的密码存放策略不同,所以在进行更改密码操作前,务必先确认以下信息:

  1. TDH 集群的版本;
  2. Manager 是否开启了 HA 高可用

附录:常用密码的加密串

密码 加密串
admin c3198638fb7027b8f5631462e10e3b69
123456 a90041423ab65ef6f9db957654c43d54

1、4.X 版本

4.x 版本的 Manager 数据是以 json 文件保存的,当忘记密码时,只需要修改 json 文件里面的密码串即可;其中分为单机模式和 HA 模式:

  1. 单机模式下只需要修改 Manager 节点的 json 文件即可
  2. HA 模式下元数据是由 zookeeper 管理,所以需要修改 active 节点的数据,并加载至 zookeeper 中
1.1 Manager 非 HA 部署

ssh 登录到 Manager 节点,到节点的 /var/lib/transwarp-manager/master/data/data 目录,更改 User.json 文件中 admin 用户的密码串即可。

$ cd /var/lib/transwarp-manager/master/data/data
$ vi User.json

可更改下图所示字段为 123456 对应常用密码串如:

file

重启 Manager,然后就可以用 admin 用户以密码 123456 登录 Manager 的 8180 了。

$ service transwarp-manager stop && sleep 3 && service transwarp-manager start
1.2 Manager HA 部署

TDH 从 4.6 开始提供管理节点高可用功能,在 4.X 版本中开启 Manager HA 后,Manager 的配置数据是存在其自身的 zookeeper 里,默认端口号为 2111. 可以执行命令 grep -iE "transwarp.manager.master.zookeeper.clientPort" /etc/transwarp-manager/master/ha.properties 确认。Manager 的配置文件在 zookeeper 中的默认 node 为:/transwarp/manager/data。

  • 浏览器打开任意 Manager 的 8180,在 Windows 本机的 C:\Windows\System32\drivers\etc\hosts 文件配置了 TDH 集群 ip 和 hostname 映射关系的前提下,浏览器会自动跳转到当前 Active 的 Manager 地址,然后 ssh 登录该 Active 节点

  • 在 active 节点执行 curl -X POST http://{active状态Manager的地址}:{Manager端口}/ha/flushToDisk 先备份下当前数据,如:

$ curl -X POST http://localhost:8180/ha/flushToDisk
  • 依次执行如下命令(直接复制执行即可!),细心更改 admin 用户密码为 123456 对应常用密码串
$ cp -fv /var/lib/transwarp-manager/master/data/data/User.json /tmp/User.json
$ vi /tmp/User.json

file

  • 请采用如下完整命令更新 ZK 中的 Node 数据(直接复制执行即可!!!)
$ echo \'$(cat /tmp/User.json)\' | xargs -I {} zookeeper-client -server localhost:2111 set /transwarp/manager/data/User.json {}
  • 检查 ZK 中的 Node 数据是否正确更新无误
$ zookeeper-client -server localhost:2111 get /transwarp/manager/data/User.json

file

  • 继续在该 Active 节点执行如下命令重启 Manager
$ service transwarp-manager stop && sleep 3 && service transwarp-manager start
  • 重新打开浏览器,以 admin 用户用密码 123456 登录验证

2、5.X 及其以上版本

5.x 版本的 Manager 数据是采用数据库保存的,当忘记密码时,需要修改数据库对应的 user 表里面的密码串,分为单机模式和 HA 模式:

  1. 单机模式下,Manager 采用的是 Mariadb 数据库,只需要登录 Manager 节点的Mariadb 并修改admin密码;
  2. HA 模式下元数据是由分布式 txsql 数据库管理,所以需要登录 active 节点的 txsql 数据库,修改 user 表里面的 admin 用户的密码;
2.1 Manager 非 HA 部署

ssh 登录到 Manager 节点,按如下操作:

  • 登录进 mysql
$ mysql -h localhost -u transwarp -p$(cat /etc/transwarp-manager/master/db.properties | grep io.transwarp.manager.db.password | awk -F = '{print $2}') -S /var/run/mariadb/transwarp-manager-db.sock -D transwarp_manager
  • 在 mysql 里执行如下语句更改 admin 用户的密码为 123456,然后退出 mysql
use transwarp_manager;
select name, fullName, passwdEncrypt from user;
update user set passwdEncrypt='a90041423ab65ef6f9db957654c43d54' where name='admin';
quit
  • 然后用密码 123456 再次登录 Manager 的 8180 验证
2.2 Manager HA 部署:

ssh 登录到当前 Manager 的 Active 节点。按如下操作:

  • 执行以下命令找出 TxSQL 的容器ID
$ docker ps | grep -i manager-txsql
  • 进入容器
$ docker exec -it <容器ID> /bin/bash
  • 在容器里执行命令登录 TxSQL
$ /usr/bin/txsql/tools/txsql.sh shell
  • 在 TxSQL 里更改密码,然后退出 TxSQL
use transwarp_manager;
select name, fullName, passwdEncrypt from user;
update user set passwdEncrypt='a90041423ab65ef6f9db957654c43d54' where name='admin';
quit
  • 退出容器 ,然后打开浏览器用密码 123456 登录验证

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。