tiup 部署用户问题

你好 ,想问一下 ,TIUP 组件升级了不会默认覆盖之前的版本吗 ?
我手工执行了 tiup update cluster 命令 后,运行部署命令,一开始以为是 root SSH 互信 问题,但 当把 ansible 删除后,并且把各个节点的公钥删除后,发现还是一样报错,然后再看 TIUP 组件版本信息,如下:

您好,我不是很明白,请问一开始是使用ansible安装的? 哪个版本,然后导入到tiup?能否麻烦详细说明下,多谢

你好 ,我没有用官方上ansible 来安装集群环境,因为之前问过,ansible 是集成在一起的,不能单独使用!!
然后,上面截图上是我 安装 TIUP 完成后,最开始是 0.4.9版本,后面因为一些事情延后,昨天尝试一下更新命令,也就是 tiup update cluster ,版本就是 0.6.0 ;

具体操作步骤是 :
1、准备了三个节点,对比官方硬件要求,最大限度满足;
2、防火墙开放端口号
image

3个节点都打开;

4、YUM 安装 ansible ,并且root 用户之间节点互信
5、根据官方文档 安装并且设置 TiUP 组件 及环境变量
6、选择 单机单节点 创建配置文件 topology.yaml (相关目录根据实际情况做了自定义)

7、使用 TIDB 集群部署命令
tiup cluster deploy bxdb v4.0.0-rc /tools/topology.yaml --user root

之后报错信息如下:


报错信息是今天跑出来的,但和之前报错是一致的;

在ASKTUP 上提了一下报错,也就是昨天你看到的那个;

你们这给出的建议,一个是看官方文档流程,另外一个 干掉 SSH 互信 重新运行部署命令

今天上午时候 我把 ansible 干掉了 ,同时也把各个节点公钥 干掉

image

确定好 TIUP 没啥问题后,运行部署命令 报错还是一样;请问有啥建议吗?

debug 日志和昨天上传的没区别

好的看来在您这里有两个问题对吧

  1. 为什么版本显示是那样,这是我的测试集群的展示
  2. 非常感谢您的详细描述,抱歉这个问题也很久了麻烦您帮忙再发一下这个debug日志,多谢

各个节点放火墙端口开放如下:

你好,我用的是 TIUP 部署 ,版本的话 刚刚也发出来了,DEBUG 日志如下 :(日志 分别是当天 最新的一个 )
tiup-cluster-debug-2020-05-11-16-10-37.log (33.2 KB) tiup-cluster-debug-2020-05-11-23-16-38.log (33.1 KB) tiup-cluster-debug-2020-05-13-14-30-33.log (32.8 KB)

麻烦了!!

昨天最开始看到的是官方文档 V4.RC.1 的版本 ,但刚刚看了一下 ,好像只有 V4.RC

  1. 从报错日志看,是没有权限登录。 请问您创建集群的完整命令是什么? 有使用-p 或者 -i参数吗? 您每个服务器上的指定的用户密码是一样的吗?

2020-05-11T16:10:37.738+0800 DEBUG TaskFinish {“task”: “EnvInit: user=tidb, host=10.10.101.100”, “error”: “task.env_init.failed: Failed to initialize TiDB environment on remote host ‘10.10.101.100’, cause: module.user.user_add_failed: Failed to create new system user ‘tidb’ on remote host, cause: executor.ssh.execute_failed: Failed to execute command over SSH for ‘root@10.10.101.100:22’ {ssh_stderr: , ssh_stdout: , ssh_command: PATH=$PATH:/usr/bin:/usr/sbin sudo -H -u root bash -c “id -u tidb > /dev/null 2>&1 || /usr/sbin/useradd -m -s /bin/bash tidb && echo ‘tidb ALL=(ALL) NOPASSWD:ALL’ > /etc/sudoers.d/tidb”}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain”, “errorVerbose”: "task.env_init.failed: Failed to initialize TiDB environment on remote host ‘10.10.101.100’, cause: module.user.user_add_failed: Failed to create new system user ‘tidb’ on remote host, cause: executor.ssh.execute_failed: Failed to execute command over SSH for ‘root@10.10.101.100:22’ {ssh_stderr: , ssh_stdout: , ssh_command: PATH=$PATH:/usr/bin:/usr/sbin sudo -H -u root bash -c “id -u tidb > /dev/null 2>&1 || /usr/sbin/useradd -m -s /bin/bash tidb && echo ‘tidb ALL=(ALL) NOPASSWD:ALL’ > /etc/sudoers.d/tidb”}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

节点之间 root密码是不一样的;所以按我最开始的步骤 我提前配置 SSH 互信,这样就提前解决了密码的问题;

命令如下 : tiup cluster deploy tidb-test v4.0.0-rc ./topology.yaml --user root -i /home/root/.ssh/id_rsa

如果是没有权限登入,,。。。这个不应该呀,SUDO 权限我都配置过了

你好,

此处引用的是 root,但是你配置的是 tidb 免密,请检查下

image

文档上没说是要 root 免秘呀!!

你好,

目前你的情况

  1. root 密码各个服务器不一致
  2. 需要有一个用户具备 sudo 权限

再根据文档描述,你确定是是否需要将 root 免密,或者选择一个具有免密且有 sudo 权限的用户。

因为 3个节点 密码不一 ,所以我提前做了 ansible 上SSH 互信!!

难道 必须要做手工分发公钥互信的那种 ? 这个我测试一下

sudo 权限我用了 TIDB ;这个应该没啥问题把

就像之前给你描述的,

topology 中的 user 不需要做任何操作,只要 --user 用户有权限,就会自动创建并免密。

嗯,我先测试一下手工分发免秘;

但有个问题是 我把自动化免秘去了包括去了节点的公钥后,只是运行

tiup cluster deploy tidb-test v4.0.0-rc ./topology.yaml

出来的报错和之前的类似;这个是不是说 TIDB 这个用 sudo 没做好权限!

如果不指定-p 或者 -i 就回去找对应的~/.ssh 下面的密钥了,如果没有或者不正确,就有问题

1 个赞