gpt4 book ai didi

python - 有没有办法让 Fabric 汇总多个主机的结果?

转载 作者:太空狗 更新时间:2023-10-30 01:09:42 25 4
gpt4 key购买 nike

当我使用 Fabric 管理数十台服务器时,我通常不关心每台服务器上运行的命令的具体细节,相反,我想整理来自每台主机的少量信息并将其汇总呈现在结束。

Fabric 本身是否支持此功能? (我搜索了文档无济于事,但也许我遗漏了什么)。

否则我想人们可以手动汇总这些信息,然后添加一个退出处理程序,但这感觉像是一个常见的用例。

例如,我有一些脚本可以对许多服务器执行一些基本的安全检查,我想在最后创建一个报告,而不是滚动浏览每个服务器的输出。我不想限制 Fabric 的输出,因为如果出现问题我想回滚以查明它。

最佳答案

现在这可能有点过时了,自从您提出这个问题以来,Fabric 确实发生了很大变化……不过,正如 Morgan 所说,您基本上只需要一个包装器脚本来包含主力,然后它“只是 python ”从那里。这在 execution model 中有简要说明。文档。

例如,您可能会想到包装“正常运行时间”之类的东西的一种方式(但显然,这可能会变得更加复杂):

@parallel
def _get_uptime():
'''Retrieve and return uptime for each host'''
with hide('stdout'):
up = run( 'uptime' )
return( up.rstrip() )

@runs_once
def uptime_sorted():
'''System: System uptime (sorted) - Use parallel for best effect'''
print( cyan( "[%(host)s] Executing on %(host)s as %(user)s" % env ) )
system_uptimes = execute( _get_uptime )
for sys,up in sorted( system_uptimes.iteritems() ):
print "%s: %s" % ( sys, up )

这使 uptime_sorted 成为您的入口任务。 _get_uptime 完成获取数据并返回数据的所有工作。

关于python - 有没有办法让 Fabric 汇总多个主机的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10792748/

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