部署OCP失败

【 使用环境 】测试环境
【 OB or 其他组件 】ob / ocp
【 使用版本 】oceanbase-ce-3.1.4 / ocp-3.3.0-ce-bp1-x86_64
【问题描述】部署OCP失败
【复现路径】执行安装复现
【问题现象及影响】
已经成功部署了OB之后,OB集群使用root用户部署的,进程运行用户为admin;
准备部署OCP,OCP配置如下:

precheck_ignore: false

create_metadb_cluster: false

clean_metadb_cluster: false

ob_cluster:
  name: obce
  home_path: /home/admin/oceanbase-ce
  root_password: 'xxxx'
  data_path: /home/admin/data
  redo_path: /home/admin/redo
  sql_port: 2881
  rpc_port: 2882
  zones:
    - name: zone1
      servers:
        - 192.168.1x.231
    - name: zone2
      servers:
        - 192.168.1x.232
    - name: zone3
      servers:
        - 192.168.1x.233

  meta:
    tenant: meta_tenant
    user: meta_user
    password: meta_password
    database: meta_database
    cpu: 2
    memory: 1

  monitor:
    tenant: monitor_tenant
    user: monitor_user
    password: monitor_password
    database: monitor_database
    cpu: 2
    memory: 1

obproxy:
  home_path: /home/admin/obproxy
  port: 2883
  servers:
    - 192.168.138.231

ssh:
  port: 22
  user: root
  auth_method: password
  timeout: 10
  password: XXXX

ocp:
  name: 'ocp'

  process:
    port: 8080
    log_dir: /tmp/ocp/log
  servers:
    - 192.168.138.231
  resource:
    cpu: 1
    memory: 2
  auth:
    user: admin
    password: XXXX
  metadb:
    host: 192.168.138.231
    port: 2883
    meta_password: XXXX
    meta_database: meta_database
    monitor_password: XXXX
    monitor_database: monitor_database

配置中的XXXX为密码。
已经手工创建了两个租户并设置了密码:

meta_tenant
monitor_tenant

执行安装命令:

./ocp_installer.sh install -v -c ocp.yaml -k /root/.ssh/id_rsa -i ./ocp-installer.tar.gz -o ./ocp.tar.gz

报错如下:

install start
check docker on host
load installer docker image
Loaded image: reg.docker.alibaba-inc.com/ocp2/ocp-installer:3.3.0-x86_64
make log dir
make obd dir
Traceback (most recent call last):
  File "install_ocp.py", line 43, in <module>
    run(context)
  File "install_ocp.py", line 33, in run
    install_ocp_pipeline.run()
  File "/root/installer/pipeline.py", line 10, in run
    task.run()
  File "/root/installer/task/ocp_precheck.py", line 23, in run
    raise Exception("put precheck script to {0} failed".format(ip))
Exception: put precheck script to 192.168.x.231 failed

检查OCP安装目录下的log目录,只有一个文件,但是文件没有任何信息,大小为0.

请问该问题应该如何排查和解决。

1 个赞

可以看下/tmp目录下是不是已经有precheck.py了,可以把这个文件先删掉,可能你中途部署失败换过部署用户,没有权限覆盖掉这个文件

/tmp目录下没有你说的文件:

[root@k231 ocp-3.3.0-ce-bp1-x86_64]# ll /tmp
total 8
drwxr-xr-x. 2 root root    6 Aug 26 02:48 hsperfdata_root
-rwx------. 1 root root  836 Aug 25 21:43 ks-script-J5Mtd6
drwx------  3 root root   17 Aug 26 03:14 systemd-private-4275729c56fa41a28b0ff071d6398d3f-chronyd.service-75uR0j
drwxr-xr-x  2 root root    6 Aug 26 05:22 vscode-typescript0
-rw-------. 1 root root    0 Aug 25 21:36 yum.log
-rw-------. 1 root root 1690 Aug 26 00:39 yum_save_tx.2022-08-26.00-39.NCqQgH.yumtx

另外,我请问以下两个位置的配置用户和密码的含义:

ssh:
  port: 22
  user: root

我运行ob进程用户是admin,执行部署是root,请问这个地方的user写root或者admin有什么区别和影响吗?这里的用户密码是操作系统的吧?

ocp:
  auth:
    user: admin
    password:

这个位置的auth.user 和password又应该添什么用户和密码?

ssh 下面的是在主机执行命令的时候使用的认证方式,可以是password和pubkey两种
ocp下面的这个认证方式是 ocp的账号密码,只有升级的时候会调用ocp的一些api,会使用到,安装的时候是不会用到的
这个报错看起来是scp 检查脚本到目标主机的时候报错了,得检查下用户是不是能直接连接到目标主机,我看命令里指定了key文件,是通过私钥的方式来连接的吗,ssh下配置的连接方式是不是也配置成了pubkey的方式

1 个赞

看着想格式错误。

如果要用admin起进程的话,ssh这里要传admin的密钥,不能用root
且密钥和私钥两种认证方式只能二选一,ssh配置的auth_method类型也要更改,对应password或pubkey两种

Exception: put precheck script to 192.168.x.231 failed

我和你遇到了相同的报错,原因是我这里从ocp安装服务器到其它服务器之间只能公私钥方式访问,服务器上关闭了用户名密码登录方式,所以将配置修改为这样,密码随便写一个。
ssh:
port: 22
user: root

认证方式,支持 password 或者 pubkey

auth_method: pubkey

初始化时指定私钥,就能正常部署了
./ocp_installer.sh install -c xxxx.yaml -k /root/.ssh/id_rsa -i ./ocp-installer.tar.gz -o ./ocp.tar.gz