2014-03-28 57 views
9

我有以下面料任务:面料 - 通过执行将参数传递给任务

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

我想打电话给它使用“执行”,但需要通过任务的参数。即用户和dir

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

但是这不起作用:

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

反正有没有做到这一点?

回答

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

谢谢,现在很明显我看到它, – user1513388

+0

我很好奇,为什么执行功能有关键字“主机”,而不是 “托管”或“env.hosts”? 由于我使用后者与执行() 谢谢你。 – gprakhar

+0

@gprakhar:据我所知,它应该同时接受'host'和'hosts'(虽然我不完全确定)。如果它不适合你;问一个新问题。 – jfs

相关问题