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