ighack
(Ighack)
1
我用root安装的tiup
执行tiup cluster deploy tidb-test v3.0.12 ./topology.yaml --user tidb
输入密码以后提示
+ Initialize target host environments
- Prepare 10.3.87.221:22 ... Error
- Prepare 10.3.87.202:22 ... Error
- Prepare 10.3.87.34:22 ... Done
Error: executor.ssh.execute_failed: Failed to execute command over SSH for 'tidb@10.3.87.221:22' {ssh_stderr: , ssh_stdout: , ssh_command: PATH=$PATH:/usr/bin:/usr/sbin sudo -
H -u root bash -c "mkdir -p {/tidb/deploy,/tidb/data}"}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
Verbose debug logs has been written to /tidb/app/tiup-cluster-debug-2020-04-10-09-12-07.log.
Error: start `/root/.tiup/components/cluster/v0.4.6/cluster` (wd:/root/.tiup/data/RviL6DA) failed: exit status 1
我已经试过了ssh tidb@10.3.87.221
然后输入密码是可以正常登录的。而且我三台机器的密码是一样的
ssh tidb@10.3.87.34也是输入密码就可以登录了。不知道是那里的问题
如果我在221上用tidb用户ssh-keygen
然后
ssh-copy-id tidb@10.3.87.221
ssh-copy-id tidb@10.3.87.202
ssh-copy-id tidb@10.3.87.34
运行的时候加了 -i -i /tidb/app/.ssh/id_rsa
+ Initialize target host environments
- Prepare 10.3.87.221:22 ... Error
- Prepare 10.3.87.202:22 ... Error
- Prepare 10.3.87.34:22 ... Done
Error: Failed to initialize TiDB environment on remote host '10.3.87.221' (task.env_init.failed)
caused by: Failed to create new system user 'tidb' on remote host
caused by: Failed to execute command over SSH for 'tidb@10.3.87.221:22'
caused by: ssh: handshake failed: ssh: unable to authenticate, attempted methods [publickey none], no supported methods remain
就提示上面的错误
qizheng
(qizheng)
2
1 确认 tidb 用户配置了 sudo 免密码权限
2 确认报错机器上的 /etc/ssh/sshd_config 配置与正常机器的配置一致
3 执行 ssh -v tidb@xxx 确认当前支持的所有认证方式
ighack
(Ighack)
3
/etc/ssh/sshd_config
我对比了正常机和错误机的文件是一样的
ssh -v tidb@xxx
我也对比了正常机和错误机的输出,也是一样的
tidb sudo 也确定是免密的
而且我发现执行命令以后。我用交互命令输入密码,它确实在三台机器上面都生成了/tidb/app/.ssh/authorized_keys这个文件
qizheng
(qizheng)
4
上面用 tidb 用户在 221 上配置了 ssh 互信,确认 221 切换到 tidb 用户后能否免密登录到其他机器。
ighack
(Ighack)
6
不知道啊。
我以tidb登录,手动的ssh-keygen
ssh-copy-id 10.3.87.221
ssh-copy-id 10.3.87.202
ssh-copy-id 10.3.87.34
试了一下 ssh 到其他的机器上
只有34可以免密。其他的都要输入密码
我也反复确认了一下/etc/ssh/sshd_config文件内容是一样的啊
home
.ssh
.ssh/authorized_keys
目录和文件的权限都是一样的啊
qizheng
(qizheng)
7
ighack
(Ighack)
8
是啊。但我文件权限是一样的。sshd_config配置也是一样的。不知道有那个部分造成这个错误
qizheng
(qizheng)
10
可以将 topology.yaml 的 user 指定为另一个用户试试
当执行 deploy --user user_a -i 或者 password 连到目标机器时,user_a 会通过 ssh -i 或者密码登陆目标机器 ,然后创建 user_b 用户 user_b sudo 权限。
其中 user_a 为 --user 指定的部署用户,有 sudo 权限 和 ssh 权限;
user_b 为 topology.yaml 配置的部署用户。
ighack
(Ighack)
11
我刚把root进行了免密成功了
–user 指定为root
topology.yaml中的user还是用的tidb
Error: executor.ssh.execute_failed: Failed to execute command over SSH for 'tidb@10.3.87.221:22' {ssh_stderr: , ssh_stdout: , ssh_command: PATH=$PATH:/usr/bin:/usr/sbin sudo -
H -u root bash -c "mkdir -p {/tidb/deploy,/tidb/data}"}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
还是提示上面的错误
如果将topology.yaml中的用户换成root就可以成功了
但服务启动不成功
qizheng
(qizheng)
12
服务启动报错检查下相关日志
1 登录到报错的节点上,检查服务状态是否正常,如果不正常,检查系统日志 /var/log/messsage
2 报错节点的 deploy_dir/log 目录下,检查相关组件日志是否有报错
ighack
(Ighack)
13
SELinux
firewall
都需要关掉
不然就会出现普通用户明明已经免密了。在ssh的时候还是提示要密码
防火墙也要关。或者开一下端口
不然服务启不了
1 个赞
qizheng
(qizheng)
14
部署文档 常见问题包括关闭 firewalld,SELinux 的问题我们再确认下,看是否有必要更新到文档,感谢反馈。
mo2g
(Mo)
15
试试
tiup cluster deploy tidb-test v3.0.12 ./topology.yaml -i ~/.ssh/id_rsa --user tidb
来了老弟
17
不知问题是否已经解决
尝试使用,输入 root 密码。
tiup cluster deploy tidb-test v3.0.12 ./topology.yaml
我今天在centos7.7上使用tiup部署也是报创建目录权限问题,看日志好像是部署脚本在创建/tidb-data和/tidb-deploy目录时候没有加sudo,所以我直接在部署目标服务器上手动创建/tidb-data和/tidb-deploy目录,另外还需要手动创建/tidb-data-monitored-9100目录,然后将这几个目录权限赋给tidb用户,然后就部署成功了。
baozixiaoge
(Hacker Tiosh T Ja)
20
中控机tidb用户模式下,ssh-copy-id root@ip 然后部署命令如下
tiup cluster deploy tidb-lb v4.0.0-rc ./topology.yaml --user root -i /home/tidb/.ssh/id_rsa
亲测有效,另外如果中控机在集群内,ssh-copy-id 也需要root本机秘钥免密
1 个赞