Python 如何在结构中设置动态主机
下面的代码可以设置动态主机:Python 如何在结构中设置动态主机,python,fabric,Python,Fabric,下面的代码可以设置动态主机: def set_hosts(): env.hosts = ['host1', 'host2'] def mytask(): run('ls /var/www') 但我只能在shell中运行此任务,并且该任务将按顺序而不是并行运行: fab set_hosts mytask 如何在fabfile中运行它?这样我就可以将decorator@parallel设置为并行运行 def set_namehost(): env.hosts = ['n
def set_hosts():
env.hosts = ['host1', 'host2']
def mytask():
run('ls /var/www')
但我只能在shell中运行此任务,并且该任务将按顺序而不是并行运行:
fab set_hosts mytask
如何在fabfile中运行它?这样我就可以将decorator@parallel设置为并行运行
def set_namehost():
env.hosts = ['namehost']
def get_namehost():
run('ls /var/www')
def set_hosts():
env.hosts = ['host1', 'host2']
def mytask():
run('ls /var/www')
我只能运行:fab set_namehost get_namehost;fab set_在shell中承载mytask,输入两次。
如何将两个作业定义为一个?如果我理解正确,您将尝试在多个主机中运行任务 如果是这样的话,你可以这样做
from fabric.api import *
env.roledefs = {
'host1' : ['you@yourFirstHost.com'],
'host2' : ['you@yourSecondHost.com'],
'host3' : ['you@yourThirdHost.com']
}
@task
def runTask():
for subtask in (deploy_host1, deploy_host2, deploy_host3):
execute(subtask)
@roles('host1')
def deploy_host1();
run('ls /var/www')
@roles('host2')
def deploy_host2();
run('ls /var/www')
@roles('host3')
def deploy_host3();
run('ls /var/www')
运行:晶圆厂运行任务
将在所有主机中运行定义的TAK。我建议采用这种方法,尤其是当您希望在主机上运行的命令不同时
在查看fab文档时,您可能希望使用以下方法:
希望这有帮助
from fabric.api import *
@parallel
def runTask():
run('ls /var/www')
fab -H host1, host2, host3 runTask