2013-03-25 1 views
14

어떻게 얻을 수 있습니까 호스트를 찾을 수 없습니다. 연결을 위해 (단일) 호스트 문자열을 지정하십시오 :?파이썬 패브릭 - 호스트가 없습니다. 연결을 위해 (단일) 호스트 문자열을 지정하십시오 :

패브릭을 해결하는 방법은 무엇입니까? 이 데코레이터로 호출되기 전에하는 대신 작업 내부 호스트를 설정

def bootstrap(): 
    host = 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com' 
    env.hosts = [host] 
    env.user = "ubuntu" 
    env.key_filename = "/home/ubuntu/omg.pem" 

fab boostrap 
No hosts found. Please specify (single) host string for connection: 

답변

11

이 그것을 수행

from fabric.api import hosts, env 

@hosts(['ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com']) 
def bootstrap(): 
    env.user = "ubuntu" 
    env.key_filename = "/home/ubuntu/omg.pem" 

이에 대한 자세한 내용은 Defining host lists 체크 아웃 - 다른 많은 방법으로가 당신이 필요로하는 것에 따라해라.

+0

감사에서 ENV 설정을 설정할 수 있습니다. 나는 다른 유형의 호스트를 다른 기능으로 정의해야하는 문제가 있었다. 이 솔루션으로 내 문제를 해결할 수있었습니다. –

20

은 또한 당신은 env.hosts 대신 env.host_string를 사용할 수 있습니다

def bootstrap(): 
    env.host_string # 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com' 
    env.user = "ubuntu" 
    env.key_filename = "/home/ubuntu/omg.pem" 
+0

고마워!, 나는 또한'env.disable_known_hosts = True'가 필요했다. – Montaro

1

이와 달리 당신은이 솔루션에 대한 귀하의 기능을 외부

from fabric.api import env, run 

host = 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com' 
env.hosts = [host] 
env.user = "ubuntu" 
env.key_filename = "/home/ubuntu/omg.pem" 

def test(): 
    run('ls -la') 
관련 문제