Parallel processing 如何为ipython群集(ipcluster)设置ssh隧道

Parallel processing 如何为ipython群集(ipcluster)设置ssh隧道,parallel-processing,ipython,ssh-tunnel,Parallel Processing,Ipython,Ssh Tunnel,我想在ssh可访问的服务器和其他一些机器上运行ipython集群,所有这些机器都可以通过ssh相互连接。网络不受信任 我已尝试使用从上的文档中了解的内容设置ssh隧道 ipcontroller和ipengine。然而,我最终获得通信工作的唯一方法是手动实现隧道。使用one的指令首先修复所有必要的端口 controller-host ~ $ ipcontroller --ip=0.0.0.0 --location=127.0.0.1 --port=10101 \ --Hu

我想在ssh可访问的服务器和其他一些机器上运行ipython集群,所有这些机器都可以通过ssh相互连接。网络不受信任

我已尝试使用从上的文档中了解的内容设置ssh隧道 ipcontroller和ipengine。然而,我最终获得通信工作的唯一方法是手动实现隧道。使用one的指令首先修复所有必要的端口

controller-host ~ $ ipcontroller --ip=0.0.0.0 --location=127.0.0.1 --port=10101 \
             --HubFactory.hb=10102,10112 \
             --HubFactory.control=10203,10103 \
             --HubFactory.mux=10204,10104 \
             --HubFactory.task=10205,10105
然后可以手动初始化上述固定端口的ssh隧道

engine-host ~ $ for port in 10101 10102 10112 10103 10104 10105; do\
                    ssh USER@IP_CONTROLLER -f -N -L $port:localhost:$port;\
                done
虽然这是可行的,但我从文档中感觉到,ipcontroller或ipengine的许多选项之一可以实现这一点,而无需手动安装端口。对我来说,一个非常可行的解决方案可能是开放防火墙的固定端口,因为我们网络中的所有IP都是固定的,并且是合理可信的


如何指示引擎通过隧道连接到控制器?

感谢您复制宝贵的说明,现在博客的链接已断开! 我能够通过编辑配置文件中的相应项使其工作。 首先,创建一个配置文件:

ipython profile create --parallel --profile=myCluster
然后,编辑
~/.ipython/profile\u myCluster/ipcontroller\u config.py
,以便:

c.HubFactory.control = 10203,10103
c.HubFactory.task = 10205,10105
c.HubFactory.mux = 10204,10104
c.HubFactory.regport = 10101
c.HubFactory.hb = 10102,10112
现在,如果可以访问端口,只需启动

ipcluster start --profile=myCluster

有关其他选项,请参见

我也遇到了类似的情况-自动设置SSH隧道(在引擎/控制器进程关闭时删除)或指定端口范围的方法(向防火墙添加一些显式的主机:端口范围组合)最有用。。。