我正在编写一个脚本来在多个主机上启动负载生成实验。我可以编写一个 bash 脚本来启动多个 ssh 会话,但我希望使用更结构化的东西。由于我的大部分脚本都使用 Python,所以我想Fabric http://www.fabfile.org看起来是一个不错的选择。
唯一的问题是我需要使用每个命令传递少量主机特定数据(实际上只是一个 id 或计数器),并且我想并行运行它们。
换句话说,我想做类似以下的事情,其中每个主机的 host_num 都不同(可能只是递增)。
@parallel
def launch():
with cd('/working/dir'):
run("./start/script -id=%d", host_num)
这在 Fabric 中可能吗?如果没有,我可以使用其他工具来完成同样的事情吗?
您可以检查用户/主机。每个任务都知道它们当前运行的环境:
env.hosts = ['[email protected] /cdn-cgi/l/email-protection', '[email protected] /cdn-cgi/l/email-protection']
@task
def test():
print '%(user)s@%(host)s' % (env)
if env.host == 'host1.com':
id = 1
elif ...
run('echo "%s"' % (id))
请随意以更优雅的方式编写它:)(一个建议是使用类似于 id 查找的 case 语句的字典)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)