创建在不同服务器中运行的脚本

时间:2011-07-01 16:43:32

标签: perl distributed sysadmin

我有三台服务器用于管理一堆其他客户端服务器。其中一个管理服务器有nagios,另一个有Web代理,另一个有ldap和MySQL服务器。

每当我需要包含一个新的客户端服务器时,我必须登录到服务器A,并创建SQL条目,转到nagios并创建条目,转到Web服务器并添加代理。你得到了照片。我想要的是能够让所有服务器共享一个脚本目录,比如'/ opt / boxes / scripts`,并且有一堆脚本知道它们可以在哪里运行。假设我在服务器A中并运行应该在服务器B上运行的脚本X,它实际上将在服务器B中运行。

有一种简单的方法吗?优选perl基础,因为这是我所知道的一点点。

1 个答案:

答案 0 :(得分:1)

一种简单的方法可能是为每台机器上的每个脚本创建一个目录。

在一个目录中,实际脚本运行。 在所有其他目录中,脚本对适当的服务器执行ssh并运行实际脚本。

E.g。

添加客户端的脚本   ssh servera -c servera-addclient-to-sql   ssh serverb -c serverb-addclient-to-nagios   ssh serverc -c serverc-addclient-to-webproxy

添加知道它们运行位置的脚本也很容易。

以松散的形式

$RunWhere = "XXXX"
$ScriptName = "YYYY"

if `hostname` ne "XXXX" {ssh $RunWhere -c $Scriptname @ARGS ; exit; }
else {
Do the actual stuff
}

所以从任何地方运行,如果这是正确的事情,它在本地运行,否则在正确的位置安装一个安全的shell并在那里运行相同的命令。