2014-03-25 2 views
1

여러 호스트에서 다양한 패키지 설치를 테스트하려고합니다. 다른 호스트는 다른 암호/ssh 키를 가지고 있습니다.fabric의 터미널 명령 줄에서 여러 호스트에 대해 ssh 키를 제공하는 방법

내 fab 파일에서 호스트 이름과 해당 ssh 키를 하드 코딩하지 않겠습니다. 터미널 명령 줄을 통해 여러 호스트와 해당 ssh 키를 전달할 수 있습니까? 내 팹 파일

코드처럼 보이는 -

from fabric.api import settings, run, env 

    def test_installation(cmd): 
    run("dpkg -s %s" %cmd) 

그리고 나는 그것을 좋아 호출 오전 -

fab test_installation:tomcat7 --hosts "[email protected]:port","[email protected]:port" -i "ssh-file-path for host1","ssh-file-path for host2" 

은 나에게 적절한 방법을 제안 해주십시오. 어떤 도움이 가장 환영 받는다.

답변

1

당신은 호스트의 SSH 키를 제공하지 않지만, 만 당신의 SSH 키, 그 호스트의 authorized_keys에 당신을 등록하는 데 사용됩니다. 그리고 당신은 그것에 대한 유일한 경로를 제공합니다 (보통 ~/.ssh/id_rsa입니다).

또한 fabric을 ssh config를 사용하도록 구성 할 수 있으므로 아무 경로도 하드 코딩 할 필요가 없습니다. 쉘에 ssh my_host을 입력 한 경우와 동일한 키를 사용할 수 있습니다.

은 어떻게 직물 튜토리얼에서 찾을 수 있습니다해야 할 일 :

http://docs.fabfile.org/en/1.8/usage/execution.html#leveraging-native-ssh-config-files

http://docs.fabfile.org/en/1.8/usage/env.html#full-list-of-env-vars

는 또한 다른 호스트에 대해 서로 다른 키를 사용하려면 ~/스푸핑/설정을 설정할 수 있습니다. 당신은 ssh를하고 그것을 구성에 익숙하지 않은 경우 , 참조하십시오 내가 루비 스크립트에서이 전화를해야 만 확률값 answer.The에 대한

http://linux.die.net/man/5/ssh_config

+0

감사하고 내가 등록 할 수있는 방법이없는 내 가상 머신이 다른 호스트 시스템. 나는 가상 머신의 다양한 개인 키만을 가지고있다. 거기에 가상 컴퓨터 개인 키를 전달할 수 있고 그들에게 연결할 수있는 방법이 있습니까? – Shona

+0

http://askubuntu.com/questions/4830/easiest-way-to-copy-ssh-keys-to-another-machine 및 기억 : 비공개는 아니지만 __public keys__ –

+0

예, 실수였습니다 ... 공개 키 . – Shona