Python 在远程主机上并行运行 python 脚本

Python running a python script on remote hosts in parallel

提问人:ajhowey 提问时间:5/5/2022 更新时间:5/5/2022 访问量:355

问:

我正在寻找一种在一组远程主机上并行运行 python 脚本的方法。该脚本在每个主机上都具有相同的名称,但我需要它同时在每个主机上运行。我可以使用 Pool:multiprocessing 来实现此目的吗?我正在考虑如下事情:

#!/usr/bin/env python3

import csv
import os
from multiprocessing import Pool
from os import path

remoteScript = '/app/DR_Autoomation/DR_start_processes.py'
start1 = 'hostIP1:remoteScript'
start2 = 'hostIP2:remoteScript'
start3 = 'hostIP2:remoteScript'

hosts = (start1, start2, start3)

def start_host_processes(node_process_start):
    os.system('python {}'.format(node_process_start))

start_pool = Pool(hosts=3)
start_pool.map(start_host_processes, hosts)

我不确定如何将“remoteScript”变量“附加”到 hostIP 变量,但上面的脚本是我需要完成的操作的一般概述。需要运行“remoteScript”的原因是我需要满足一个小时的 SLA 才能启动并运行环境。

Python 多处理 远程执行

评论

0赞 tdelaney 5/5/2022
Python 的模块适用于单个主机。但是有很多方法可以运行分布式命令 - 尽管它可能是特定于操作系统的。 从 Linux 命令行浮现在脑海中。一个注意到 stackoverflow.com/questions/26876898/...有一些解决方案。这更像是互联网搜索引擎的问题,而不是stackoverflow。multiprocessingpdsh
0赞 tdelaney 5/5/2022
如果目标是支持 SSH 的系统,则可以使用线程池运行与远程主机的 paramiko 连接。

答: 暂无答案