gpt4 book ai didi

python - Fabric 在不同主机上同时运行命令

转载 作者:行者123 更新时间:2023-12-01 03:17:20 27 4
gpt4 key购买 nike

我正在使用 Fabric,我想同时在不同的主机上下载文件,但是当我使用

env.hosts = ['192.168.1.2', '192.168.1.3', '192.168.1.4']

我总是得到找不到主机。请指定用于连接的(单个)主机字符串:

from fabric.api import env ,  run, sudo, settings
env.user = 'root' #all the servers have the same username
env.hosts = ['192.168.1.2', '192.168.1.3', '192.168.1.4']
env.key_filename = "~/.ssh/id_rsa" # I have their ssh key
run('wget file') #The command I need to run in parrallel

我想从 python 代码运行它,而不使用 fab 命令。

最佳答案

我通常使用 @parallel 装饰器 ( http://docs.fabfile.org/en/1.13/usage/parallel.html ) 并执行类似的操作。

env.use_ssh_config = True
env.user = 'ubuntu'
env.sudo_user = 'ubuntu'
env.roledefs = {
'uat': ['website_uat'],
'prod': ['website01', 'website02']
}

@task
def deploy(role_from_arg, **kwargs):
# on each remote download file
execute(download_file, role=role_from_arg, **kwargs)


@parallel
def download_file(*args, **kwargs):
# some code to download file here

然后我可以运行fab deploy:prod

关于python - Fabric 在不同主机上同时运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42350123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com