【发布时间】:2010-09-19 14:45:33
【问题描述】:
我已经搜索了一些类似的问题,但除了运行一个命令或一些带有以下项目的命令之外:
ssh user@host -t sudo su -
但是,如果我基本上需要同时在(比方说)15 台服务器上运行脚本,该怎么办。这在 bash 中可行吗?在一个完美的世界中,如果可能的话,我需要避免安装应用程序。为了论证起见,假设我需要跨 10 个主机执行以下操作:
- 部署新的 Tomcat 容器
- 在容器中部署一个应用,并配置它
- 配置 Apache 虚拟主机
- 重新加载 Apache
我有一个脚本可以完成所有这些工作,但它依赖于我登录所有服务器,从 repo 中提取一个脚本,然后运行它。如果这在 bash 中不可行,您有什么替代方案?我是否需要更大的锤子,例如 Perl(Python 可能是首选,因为我可以保证 Python 在 RHEL 环境中的所有机器上,这要归功于 yum/up2date)?如果有人可以向我指出任何有用的信息,我们将不胜感激,特别是如果它在 bash 中是可行的。我会满足于 Perl 或 Python,但我就是不知道这些(正在研究)。谢谢!
【问题讨论】:
-
使用
sudo -sH而不是sudo su -。 -
您更想问的是如何远程执行多行,或者如何同时跨多个主机“并行”执行行?对于并行,请参阅serverfault.com/a/875812/27813