ob 4.0.0怎么在普通用户模式下安装

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.0.0
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【问题现象及影响】

【附件】

参考: 在线部署 OceanBase 数据库-OceanBase 数据库-OceanBase文档中心-分布式数据库使用文档

已提前创建好普通用户,并配置了sudo权限
admin ALL=(ALL) NOPASSWD: ALL

yaml 中设置好账户及密码
user:
username: admin
password: xxx

安装时报错
$ obd cluster autodeploy obtest -c 1.yaml

Repository integrity check ok
Parameter check ok
Open ssh connection ok
Cluster status check ok
Initializes observer work home x
[ERROR] OBD-1002: Fail to init mgr2(172.16.16.10) home path: /home/admin/oceanbase is not empty.
[ERROR] OBD-1002: Fail to init mgr3(172.16.16.16) home path: /home/admin/oceanbase is not empty.
[ERROR] OBD-1002: Fail to init mgr4(172.16.16.53) home path: /home/admin/oceanbase is not empty.

Initializes obproxy work home ok
Initializes obagent work home x
[ERROR] OBD-1002: Fail to init mgr2(172.16.16.10) home path: create /data/obagent failed.
[ERROR] OBD-1002: Fail to init mgr3(172.16.16.16) home path: create /data/obagent failed.
[ERROR] OBD-1002: Fail to init mgr4(172.16.16.53) home path: create /data/obagent failed.

See https://www.oceanbase.com/product/ob-deployer/error-codes .

在admin账户下,手动执行mdkir成功
su - admin
Last login: Fri Nov 4 09:50:10 CST 2022 on pts/0
Last failed login: Fri Nov 4 15:23:02 CST 2022 from 172.16.16.7 on ssh:notty
There was 1 failed login attempt since the last successful login.
-bash-4.2$ sudo mkdir -p /data/obagent
-bash-4.2$ sudo mkdir -p /data/oceanbase
-bash-4.2$ exit
logout

1 个赞

ob 支持普通用户安装,问题在于,提前设置的数据目录和日志目录,/data/xxxx admin 没有权限,你chown 一下试试

1 个赞

可以了,谢谢,但是又有新问题,destroy时报错如下:

$ obd cluster destroy obtest -f
Get local repositories ok
Search plugins ok
Open ssh connection ok
Stop observer ok
Stop obproxy ok
Stop obagent ok
obtest stopped
Search plugins ok
Cluster status check ok
observer work dir cleaning x
[WARN] OBD-1003: Fail to clean mgr2(172.16.16.10):/data/oceanbase
[WARN] OBD-1003: Fail to clean mgr2(172.16.16.10):/data/obredo
[WARN] OBD-1003: Fail to clean mgr3(172.16.16.16):/data/oceanbase
[WARN] OBD-1003: Fail to clean mgr3(172.16.16.16):/data/obredo
[WARN] OBD-1003: Fail to clean mgr4(172.16.16.53):/data/oceanbase
[WARN] OBD-1003: Fail to clean mgr4(172.16.16.53):/data/obredo

obproxy work dir cleaning ok
obagent work dir cleaning x
[WARN] OBD-1003: Fail to clean mgr2(172.16.16.10):/data/obagent
[WARN] OBD-1003: Fail to clean mgr3(172.16.16.16):/data/obagent
[WARN] OBD-1003: Fail to clean mgr4(172.16.16.53):/data/obagent

obtest destroyed

admin有sudo的所有权限,且目录权限也是正确的:

$ ll /data/ | grep ob
drwxr-xr-x  2 admin admin    6 Nov  4 16:33 obagent
drwxr-xr-x  2 admin admin    6 Nov  4 16:23 obproxy
drwxr-xr-x  2 admin admin    6 Nov  4 16:33 obredo
1 个赞

destroy失败,应该是你admin没有父目录/data的权限

admin用户已经授予sudo all权限了呀

在销毁的时候不会加上sudo
sudo免密只有在切换用户的时候OBD会用到