여러 원격 호스트에서 Python 스크립트를 통해 병렬로 메소드를 실행하려고합니다. 나는 그들의 신임장을 가지고있다. (ip, usr, pass). 이렇게하려면 @parallel
으로 메소드를 꾸미고 모든 호스트에 부여한 execute()
을 통해 호출했습니다. 내 질문은 각 작업에 대해 env.usr
, env.password
을 어떻게 설정합니까? 여기 내 코드의 예는 다음과 같습니다패브릭 파이썬에서 병렬 실행
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()
질문이 답을 do_something()
덕분에 많은 각 호스트에 대한 env
매개 변수를 설정하는 방법입니다!
이렇게하는 것이 가장 좋은 방법은 SSH 키를 사용하여이 모든 것을 매우 간단하게 제거하는 것입니다. 분명히 해줄 수 있니? – Nuvi
SSH 키를 사용하면 사용자가 결정한 것과 동일한 암호를 사용하여 여러 암호로 보호 된 ssh 계정에 로그온 할 수 있습니다. ssh 키의 사용법은 ssh 키를 생성하고 각 공개 버전을 각 서버에 넣고 fabfile에'env.key_filename = "~/.ssh/id_rsa"'를 추가하는 것으로 귀결됩니다. ssh 키에 대한 자세한 내용은 Google이 귀하의 친구입니다 (이 상자는 토론과 관련하여 너무 작다고 느낍니다.)) ... – Oct
감사합니다! 나는 이번에 그것을 풀었지만 당신의 제안을 확실히 볼 것이다. – Nuvi