安装社区版oms,ssh端口非默认的22,报错Unable to connect to port 22 on 10.xxx.xx.10

【 使用环境 】测试环境
【 OB or 其他组件 】社区版oms
【 使用版本 】oms_4.0.0-ce_bp1
【问题描述】安装社区版oms,ssh端口非默认的22,报错Unable to connect to port 22 on 10.xxx.xx.10
【复现路径】问题出现前后相关操作
【问题现象及影响】
[admin@ocp1 ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one 4.0.3-ce-x86_64 252d219f925f 3 weeks ago 2.44GB
reg.docker.alibaba-inc.com/ocp2/ocp-installer 4.0.3-ce-x86_64 5a4023db0c8e 5 weeks ago 1.56GB
reg.docker.alibaba-inc.com/oceanbase/oms feature_4.0.0-ce_bp1 79d360e47f56 3 months ago 2.62GB

[admin@ocp1 ~]$ sudo sh docker_remote_deploy.sh -o /data/oceanbase/product/oms -c /home/admin/config.yaml -i 10.xxx.xx.10 -d 79d360e47f56 -m 10030

提示:输入 可退出部署

请选择部署模式:
●单地域单节点
单地域多节点
多地域
您选择的部署模式是:单地域单节点部署模式
请选择您所需要进行的任务:
无配置文件,全新部署 OMS,从生成配置文件开始
●已通过脚本[-c]选项传入参考配置文件,基于参考配置文件开始配置
CM URL 地址 http://10.xxx.xx.10 中不包含端口号,请填写端口号(数字),请填写端口号(数字,一般为 8088):8088
已加载您的所有配置项,并校验通过。
您的配置如下:
{
“apsara_audit_enable”: “false”,
“apsara_audit_sls_access_key”: “”,
“apsara_audit_sls_access_secret”: “”,
“apsara_audit_sls_endpoint”: “”,
“apsara_audit_sls_ops_site_topic”: “”,
“apsara_audit_sls_user_site_topic”: “”,
“cm_is_default”: true,
“cm_location”: “100”,
“cm_nodes”: [
“10.xxx.xx.10”
],
“cm_region”: “default”,
“cm_region_cn”: “默认地域”,
“cm_url”: “http://10.xxx.xx.10:8088”,
“drc_cm_db”: “drc_cm”,
“drc_cm_heartbeat_db”: “drc_cm_heartbeat”,
“drc_rm_db”: “drc_rm”,
“oms_meta_host”: “10.xxx.xx.10”,
“oms_meta_password”: “xxx”,
“oms_meta_port”: “2983”,
“oms_meta_user”: “root@oms_tenant#ocpcluster”,
“tsdb_enabled”: “false”,
“tsdb_password”: “”,
“tsdb_service”: “”,
“tsdb_url”: “”,
“tsdb_username”: “”
}

[y/n] 您是否需要重新配置?[n]n
请依次为各 OMS 节点 [‘10.xxx.xx.10’] 配置 Docker 环境信息。
请输入节点:10.xxx.xx.10 的用户名:admin
请输入节点:10.xxx.xx.10 的密码:*********
请输入配置文件 config.yaml 将写入的路径,以符号’/'结尾:[/data/oceanbase/product/oms/]/data/oceanbase/product/oms/
Traceback (most recent call last):
File “oms-config-tool/main_by_step.py”, line 15, in
main_by_step()
File “oms-config-tool/main_by_step.py”, line 11, in main_by_step
step = step.to_pass()
File “/root/oms-config-tool/steps/single_region_step.py”, line 65, in to_pass
execute_result = self.write_config(script_executor, node_)
File “/root/oms-config-tool/steps/single_region_step.py”, line 37, in write_config
execute_result = script_executor.execute_script(write_config_script)
File “/root/oms-config-tool/script_executor.py”, line 57, in execute_script
connect = self.ssh_connect()
File “/root/oms-config-tool/script_executor.py”, line 31, in ssh_connect
_ssh_fd.connect(self.host, username=self.username, password=self.password)
File “/usr/local/lib/python3.6/site-packages/paramiko/client.py”, line 372, in connect
raise NoValidConnectionsError(errors)
paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 10.xxx.xx.10

【附件】
config.yaml内容如下

[admin@ocp1 ~]$ cat config.yaml
# OMS 社区版元数据库信息
oms_meta_host: 10.xxx.xx.10
oms_meta_port: 2983
oms_meta_user: root@oms_tenant#ocpcluster
oms_meta_password: xxxx

# 用户可以自定义以下三个数据库的名称,OMS 社区版部署时会在元信息库中创建出这三个数据库
drc_rm_db: drc_rm
drc_cm_db: drc_cm
drc_cm_heartbeat_db: drc_cm_heartbeat

# 用于消费 OceanBase 增量的用户
# 当需要从 OceanBase 数据库消费增量日志时,请在 sys 租户下创建用户
# drc user 需要在待迁移的 OceanBase 集群 sys 租户下创建,然后在 OMS 社区版的 config.yaml 文件中指定
#drc_user: root
#drc_password: xxxx

# OMS 社区版集群配置
# 单节点部署时,通常配置为当前 OMS 社区版机器 IP(建议使用内网 IP)
cm_url: 10.xxx.xx.10
cm_location: 100
# 单节点部署时,无需设置 cm_region
# cm_region: ${cm_region}
# 单节点部署时,无需设置 cm_region_cn
# cm_region_cn: ${cm_region_cn}
cm_is_default: true
cm_nodes:

  • 10.xxx.xx.10

# 时序数据库配置
# 默认值为 false。如果您需要开启指标汇报功能,请设置为 true
# tsdb_enabled: false
# 当 tsdb_enabled 为 true 时,请取消下述参数的注释并根据实际情况填写
# tsdb_service: ‘INFLUXDB’
# tsdb_url: ‘${tsdb_url}’
# tsdb_username: ${tsdb_user}
# tsdb_password: ${tsdb_password}

是公司强制不能开启22端口吗?

麻烦提供下这两个东西

  1. config.yaml 配置文件
  2. /home/admin/logs/ 下已 docker_init.log 开头的部署日志文件。

image
config.yaml文件在问答中已提供,

/home/admin 下没有生成logs目录,docker_init.log文件未找到
[admin@ocp1 ~]$ sudo find / -name docker_init.log
find: ‘/proc/404197/task/432272’: No such file or directory
find: ‘/proc/432070’: No such file or directory
find: ‘/proc/432094’: No such file or directory

生产主机正常是不使用ssh默认端口,目前使用是10030

稍等我联系相关同学排查一下非22端口的部署。

我这 也有这问题: 什么时候能搞定呢 ??

我们查看了这个部署方式的脚本 docker_remote_deploy.sh 源码:

两张图片中,脚本没有放出端口参数,所以默认使用22端口传输文件,不支持自定义ssh 端口,我这边也不建议你自己改动部署脚本,这往往会伴随着大量的试错测试时间。建议你部署的时候额外多开启一下22端口,部署后关闭。 后续我会让官方尽快提供一个支持自定义ssh 端口的版本出来,到时候会更新在oms的部署文档中,请你关注oceanbase 的github issue 或者 oceanbase的官方文档。

您这个有很多场景根本不适合

  1. 你们说过了安全等保。好多等保 不准使用22端口,
  2. 机关部门系统 肯定封禁22端口。
  3. 我们公司 全部封禁 22端口了。还是民企。

我们怎么部署 产品呢 ???

你好,目前OMS已录入此需求,待产品排期,后续可关注OMS发布的release 。