2017-03-27 5 views
0

Fabric을 사용하여 여러 노드 (Ubuntu VM)에 연결하려고하지만 Fabric이 설치된 VM에서 모든 노드에 연결할 수 없습니다. 대신 엔트리 포인트라는 특정 노드로 먼저 가야하고이 엔트리 포인트에서 다른 VM으로 이동해야합니다. 여기서 모든 VM에 도달 할 수 있습니다. 아래 그림을 참조하십시오. 이것을 달성하기 위해 직물을 사용하는 방법에 대한 제안? 1 개 이상의 "점프"를 달성 할 수있는 가장 쉬운 방법으로종속 호스트 환경에서 Fabric 사용

Network Architecture

답변

1

패브릭이 ~/.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 
+0

감사합니다! 정말 감사합니다. 그것은 entryPoint와 VM0에서 잘 작동합니다. 그러나 예제 VM1에서와 같이 세 번째 점프의 경우 fabric은 암호를 묻습니다. ssh VM1만으로 테스트하면 잘 작동하지만 패브릭 안이 아니라면 paramiko의 문제가 될 수 있습니다. –

+0

VM에서 사용할 수있는 상태로 nc로 다시 시도하십시오 – fernandezcuesta

+1

openssh-server 1 : 7.3p1로 업데이트 할 때 세 번째 점프를 포함하여 모든 VM으로 점프 할 수있었습니다. 나는 NC를 사용하지 않았다. –