我想在ssh可访问的服务器和其他一些机器上运行ipython集群,所有这些机器都可以通过ssh相互连接。网络不受信任。
我尝试使用我在文档中理解的内容设置ssh隧道 ipcontroller和ipengine。然而,我最终获得通信工作的唯一方法是手动实现隧道。使用Jean-Francis Roy中的指令,首先要修复所有必要的端口
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都是固定的,并且是合理可信的。
如何指示引擎隧道到控制器?
答案 0 :(得分:1)
感谢您复制珍贵的指示,现在链接到博客已经破了! 我能够通过编辑配置文件中的相应项来使其工作。 首先,创建一个配置文件:
ipython profile create --parallel --profile=myCluster
然后,修改~/.ipython/profile_myCluster/ipcontroller_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
有关其他选项,请参阅http://ipython.org/ipython-doc/1/parallel/parallel_process.html#using-ipcluster-in-ssh-mode