在级联主机环境中使用Fabric

时间:2017-03-27 19:16:46

标签: fabric

我尝试使用Fabric连接到多个节点(Ubuntu VM),但我无法从安装了Fabric的VM访问所有节点。相反,我需要先进入一个名为入口点的特定节点,然后从此入口点到另一个VM,从那里可以访问所有虚拟机。请看下图。关于如何使用面料来实现这一目标的任何建议?

Network Architecture

1 个答案:

答案 0 :(得分:1)

超过1"跳跃"实现它的最简单方法是让Fabric读取您的~/.ssh/config的ProxyCommand指令(或等效指令)。 看看documentation

在配置文件中,您应该具有以下内容:

Host entryPoint
  HostName your-entrypoint-hostname-or-ipaddress

Host VM0
  ProxyCommand ssh -q -W %h:%p entryPoint

Host VM1 VM2 VMN
  ProxyCommand ssh -q -W %h:%p VM0

对于单次跳转,您可以考虑使用env.gateway代替。

使用nc

稍有不同
Host entryPoint
  HostName your-entrypoint-hostname-or-ipaddress

Host VM0
  ProxyCommand ssh -q entryPoint nc -q0 %h:%p

Host VM1 VM2 VMN
  ProxyCommand ssh -q VM0 nc -q0 %h:%p