parallel running in fabric python
我想通过python脚本在几个远程主机上并行运行一个方法。我有他们的证件(IP,USR,通行证)。为了做到这一点,我用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class deployment() __init__(): self.hosts = read_ips_from_csv def do_something(self) run(remote_command) def run_remote(self,func): execute(func,hosts = self.hosts) def deploy(self): run_remote(self.do_something) main(): my_deploy = deployment() my_deploy.deploy() |
问题是如何为
非常感谢你的回答!!
好的,这就是我解决它的方法(在另一个问题https://stackoverflow.com/a/5568219/3216763中找到它):我在调用execute之前添加了env.hosts和env密码,如下所示:
1 2 3 4 | def run_remote(self,func): env.hosts = ['user1@host1:port1', '[email protected]'] env.passwords = {'user1@host1:port1': 'password1', '[email protected]': 'password2'} execute(func) |
花了相当多的时间在上面,所以也许它能帮助别人。
- 至少对于登录,可以将其与主机名一起发送,如如何在结构文件中设置目标主机中所述。
- 我还没有找到一个简单的密码方法。这当然是猴修补。
注意,实现这一点的首选方法是使用ssh密钥,帮助您以非常简单的方式摆脱所有这些问题。