我听说过这两个,pssh
而且clusterssh
它们都很流行,但我想在这里讨论一下,看看社区对这些工具的体验如何?有哪些陷阱?有没有不错的技巧或用例?
答案1
我使用过 pssh,它很简单,而且效果很好。它对于快速查询非常有用。
如果您发现自己正在管理服务器,我建议使用一些更强大且略有不同的领域(配置管理),例如 Puppet 或 CFEngine。
答案2
知道你想做什么很重要。如果你想在很多服务器上运行“apt-get update”,clusterssh 据说是一个易于使用且有效的工具。请参阅 Kyle Rankin 关于 clusterssh 的文章Linux 杂志。
如果你在不同的服务器上工作需要逻辑循环,放置、获取或以其他方式与每个主机交互(或者可能由于错误情况而必须与主机交互),则可以使用以下工具织物(刚刚发布 1.0 版)非常有价值。如果你是 Python 爱好者,你可能会最喜欢使用 Fabric。
无论哪种情况,人们可能都希望在受影响的远程服务器上执行相当简单的任务,并专门处理任何问题主机。然而,Fabric 提供了更多选项来处理变化。
通常处理不好的一件事是处理网关主机后面的多个主机,需要先连接到网关,然后从那里进行端口转发。因为 ssh 本身做这件事很简单,你可以将文件设置.ssh/config
为类似
Host gateway
Port 9000
User remoteadmin
HostName datacentre1.com
# mail
LocalForward 9100 192.168.9.11:22
# phones
LocalForward 9101 192.168.9.12:22
Host dc1mail
Port 9100
Host 127.0.0.1
User localadmin
Host dc1phones
Port 9201
Host 127.0.0.1
User localadmin
为了实现与ssh dc1mail 'cmd'
&&等价的功能ssh dc1phones 'cmd'
,首先必须提出ssh gateway
。如果 clusterssh 和 Fabric 等工具允许将其作为其工具的一部分来完成,那就太好了。当然,您可以自己手动完成。
答案3
这SSH 电动工具(sshpt)是为并行 SSH 设计的没有要求用户设置预共享 SSH 密钥。它优于 pssh 和 clusterssh,因为它支持通过 sudo 执行,还可以复制文件并在之后执行它们(也可以通过 sudo 执行)。默认情况下,它以 CSV 格式输出结果,但 sshpt.py 兼作可导入的 Python 模块,因此您可以在自己的程序中使用它(我曾经在我以前的雇主那里将它用作定制的基于 Web 的报告工具的后端)。
答案4
我使用 cssh,它运行起来非常顺畅。您可以轻松地在多台服务器上编辑同一个文件,然后只检查一个窗口并更改特定变量的实例值。对每个窗口重复此操作,在 vim 中点击 :wq,瞧!工作完成了 ;)
它也是进行能力升级的绝佳工具。