2011-03-03 24 views
1

我想在远程计算机群集上使用ipython的并行功能。只有头节点可以从外部访问。我已经设置了ssh密钥,以便我可以通过例如连接到头节点。 ssh head并且从那里我也可以在不输入密码的情况下ssh进入任何节点,例如ssh node3。所以,我基本上可以做运行的节点上的任何命令:通过头节点并行ipython/ipcluster

ssh head ssh node3 command 

现在我真正想要做的是能够从我自己的电脑从IPython的集群上运行的工作。建立主机在ipcluster使用的方法是:

send_furl = True 
engines = { 'host1.example.com' : 2, 
      'host2.example.com' : 5, 
      'host3.example.com' : 1, 
      'host4.example.com' : 8 } 

但因为我只有头节点的主机名,我不认为我可以做到这一点。一种选择是在头节点上设置我们的ssh隧道,但我不能这样做,因为这需要打开足够的端口以容纳所有节点(事实并非如此)。有没有其他的选择?

回答

0

我会在主服务器上设置一个VPN服务器,并使用本地计算机上的VPN客户端连接到该服务器。一旦建立起来,虚拟专用网络将允许所有的从设备出现,就好像它们与我的本地设备在同一个LAN上(在“虚拟”网络接口上,在“虚拟”子网中),并且应该可能ssh给他们。您可以建立该VPN over SSH(“ssh隧道”,如您所述);其他选项是OpenVPNIPsec

我不明白你的意思是“这需要打开足够的端口来容纳所有节点”。您将需要:(i)主站上的一个入站端口,提供VPN /隧道,(ii)每个从站上的入站SSH,可从主站访问,(iii)每个从站上的另一个入站端口, IPython引擎。在任何设置中都不需要(ii)和(iii)?所以我们添加的是(i)。