繁体   English   中英

在 CentOS7 的不同 ssh 端口上使用 Greenplum 的 gpinitsystem 命令时仍然连接 22 ssh 端口

[英]Still connect 22 ssh port when using gpinitsystem command of Greenplum withing different ssh port of CentOS7

我想在 CentOS7.9 中安装 Greenplum,它已将默认 ssh 端口更改为 10022。我更改了“gpssh-exkeys”脚本,为所有 ssh 命令添加“-p 10022”,并为所有 scp 命令添加“-P 10022” . 然后运行就ok了。 然后我更改了“/usr/local/greenplum-db/lib/python/gppylib/commands/base.py”脚本以在 ssh 命令行中添加“-p 10022”。

        # Escape " for remote execution otherwise it interferes with ssh
        cmd.cmdStr = cmd.cmdStr.replace('"', '\\"')
        cmd.cmdStr = "ssh -p 10022 -o StrictHostKeyChecking=no -o ServerAliveInterval=60 " \
                     "{targethost} \"{gphome} {cmdstr}\"".format(targethost=self.targetHost,
                                                                 gphome=". %s/greenplum_path.sh;" % self.gphome,
                                                                 cmdstr=cmd.cmdStr)

但是我得到的错误是在运行“gpinitsystem”时仍然尝试连接端口 22。

[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/gpinitsystem_config --locale=zh_CN -h /home/gpadmin/seg_hosts
20220303:21:55:40:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, please wait...
20220303:21:55:40:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Reading Greenplum configuration file /home/gpadmin/gpinitsystem_config
20220303:21:55:40:005293 gpinitsystem:mdw:gpadmin-[INFO]:-No DATABASE_NAME set, will exit following template1 updates
20220303:21:55:40:005293 gpinitsystem:mdw:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250
20220303:21:55:40:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, Completed
20220303:21:55:40:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, please wait...
.ssh: connect to host sdw1 port 22: Connection refused
.ssh: connect to host sdw2 port 22: Connection refused

20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Configuring build for multi-home array
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 630: ((: REMAINDER=2 % 0: division by 0 (error token is "0")
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 631: ((: MULTIPLE=2 / 0: division by 0 (error token is "0")
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 632: [: -ne: unary operator expected
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 632: [: -eq: unary operator expected
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 640: [: -gt: unary operator expected
20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, Completed
20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Building primary segment instance array, please wait...

20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Building group mirror array type , please wait...

20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Checking Master host
20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[INFO]:-Checking new segment hosts, please wait...
ssh: connect to host sdw1 port 22: Connection refused
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 704: [: -eq: unary operator expected
ssh: connect to host mdw port 22: Connection refused
/usr/local/greenplum-db-6.19.3/bin/gpinitsystem: line 732: [: -lt: unary operator expected
ssh: connect to host mdw port 22: Connection refused
20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-[WARN]:-Postgres version does not match. [postgres (Greenplum Database) 6.19.3 build commit:33e10eef63ae25aeb33afbefdda46b6367353800 Open Source != ]
20220303:21:55:41:005293 gpinitsystem:mdw:gpadmin-Postgres version does not match Script Exiting!

而且我没有找到官方文档https://docs.greenplum.org/来指导如何使用不同的 ssh 端口进行安装。

谢谢!

不要修改交付的实用程序。 建议利用 ~gpadmin/.ssh/config 为您的主机指定端口。 所有 Greenplum 实用程序都应该遵循该文件中的设置。

示例 ~gpadmin/.ssh/config,其中所有主机都称为 sdw1-pri、sdw2-pri 等等:

Host sdw*-pri
    Port 10022

能不能在/etc/sshd_config中指定10022端口再试试。

gpinitsystem 内部调用 REMOTE_EXECUTE_AND_GET_OUTPUT function,它是 <install_dir>/bin/lib/gp_bash_functions.sh 文件的一部分。

目前 gp_bash_functions.sh 有以下条目。

SSH=`findCmdInPath ssh`
if [ x"$TRUSTED_SHELL" = x"" ]; then TRUSTED_SHELL="$SSH"; fi

我认为您可能需要像下面这样更改 if 条件

if [ x"$TRUSTED_SHELL" = x"" ]; then TRUSTED_SHELL="$SSH -p 10022"; fi

谢谢格雷格·斯皮格伯格。 显示我的 ~gpadmin/.ssh/config:

Host    mdw
        HostName        mdw
        Port    10022

Host    smdw
        HostName        smdw
        Port    10022

Host    sdw1
        HostName        sdw1
        Port    10022

Host    sdw2
        HostName        sdw2
        Port    10022

ssh config的优先级:命令的指定参数 >.ssh/config > /etc/ssh/ssh_config

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM