2013-03-25 13 views
14

Nasıl alabilirim Ana makine bulunamadı. Lütfen bağlantı için ana bilgisayar dizgisini belirtin:Python Fabric - Ev sahibi bulunamadı. Bağlantı için lütfen (tek) ana dizgiyi belirtin:

Kumaşla nasıl çözümlenir? Bir dekoratör ile çağrılan önce Bunun yerine görev içinde ana ayar

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: 

cevap

11

, bunu:

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" 

Bu konuda daha fazla bilgi için, Defining host lists kontrol - Farklı pek çok yolu için vardır ihtiyacın olana bağlı olarak yap.

+0

Teşekkür içinde env ayarlarını yapabilirsiniz. Farklı türde bir ana bilgisayarı farklı bir işleve tanımlamam gereken bir sorun yaşıyordum. Bu çözümle problemimi çözebildim. –

20

Ayrıca env.hosts yerine env.host_string kullanabilirsiniz:

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

Teşekkürler! Ayrıca env.disable_known_hosts = True 'ihtiyacım vardı – Montaro

1

Alternatevly bu çözüm için fonksiyonları dışında

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') 
İlgili konular