[英]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.