2014-03-28 6 views
9

Ich habe folgenden Stoff Aufgabe:Fabric - Übergabe von Argumenten an Aufgaben über ausführen

def ssh_keygen(user, dir): 
    env.user = user 
    run("ssh-keygen %s" % dir) 

ich es nennen will „Ausführen“ verwenden, müssen aber die Aufgabe, ein Argument zu übergeben. das heißt Benutzer und dir

execute(ssh_keygen('jbloggs', '/home/jbloggs'), hosts=["server1"]) 

Allerdings funktioniert das nicht:

No hosts found. Please specify (single) host string for connection: Traceback (most recent 

Gibt es trotzdem, um dies zu erreichen?

Antwort

11
execute(ssh_keygen, 'jbloggs', '/home/jbloggs', host="server1") 
+0

Dank, offensichtlich jetzt ich es sehe, – user1513388

+0

Ich bin neugierig, warum Funktion ‚host‘ haben Schlüsselwort ausführt und nicht ‚Gastgeber‘ oder ‚env.hosts‘? Da bekomme ich Fehler bei der Verwendung der letzteren mit execute() danke. – gprakhar

+0

@gprakhar: Es sollte sowohl "Host" als auch "Hosts" akzeptieren, soweit ich mich erinnere (obwohl ich mir nicht ganz sicher bin). Wenn es nicht für dich funktioniert; stelle eine neue Frage. – jfs