我想通過Python腳本在多個遠程主機上並行運行一個方法。 我有他們的證件(ip,usr,pass)。 爲了做到這一點,我用@parallel
來裝飾方法,並通過在那裏給所有主機。 我的問題是如何爲每個任務設置env.usr
,env.password
? 這裏是我的代碼示例:並行運行在結構python
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()
的問題是如何設置每個主機的env
參數do_something()
非常感謝您的回答!
請注意,首選方法是使用SSH密鑰,以幫助您以非常簡單的方式擺脫所有這些情況。你能澄清嗎? – Nuvi
SSH密鑰允許您使用您決定的相同密碼登錄多個受密碼保護的ssh帳戶。 ssh密鑰的使用歸結爲生成一個ssh密鑰,將其公共版本放在每個服務器上,並將'env.key_filename =「〜/ .ssh/id_rsa」'添加到你的fabfile中。有關ssh密鑰的更多信息,Google是你的朋友(這個盒子對於這樣的討論感覺太小了))... – Oct
謝謝!我這次解決了它,但一定會看你的建議。 – Nuvi