2011-07-01 8 views
0

他のクライアントサーバーの管理に使用される3つのサーバーがあります。管理サーバーの1つにはNagiosがあり、もう1つにWebプロキシがあり、もう1つにLDAPサーバーとMySQLサーバーがあります。異なるサーバーで実行されるスクリプトを作成する

新しいクライアントサーバーを追加する必要があるときはいつでも、サーバーAにログインしてSQLエントリを作成し、nagiosに移動してエントリを作成し、Webサーバーにアクセスしてプロキシを追加する必要があります。あなたは写真を手に入れます。私が望むのは、すべてのサーバがスクリプトディレクトリを共有できるようにすることです。たとえば、 '/ opt/boxes/scripts`とか、実行可能な場所を知るスクリプトがたくさんあります。サーバーAに入っていて、スクリプトBを実行するスクリプトXを実行すると、サーバーBで実際に実行されるとします。

これを行う簡単な方法はありますか?私はちょっと知っていることがあるので、perlベースが好きです。

+0

Perlを使用してネットワーキングを行うシステムには、どのように適合しませんか? SQLを作成しなければならない場合(データベースに何かをするために)、あなたは 'DBI'を使うことができます。 FTPを使用してファイルをプッシュしたり、FTP経由でファイルを読み書きすることもできます。 Perlを使用して、複雑なネットワークのやりとりを常にスクリプト化し、1台のマシンから実行します。あなたはFTP、Telnetなどへのプログラム可能なインターフェイスを手に入れます。 – Axeman

+0

@Axeman、私はこれを容易にするフレームワークを探していました。私はsshとscpを行うことは簡単ですので、sshの公開鍵でこのすべてのサーバーを持っています。私は別の方法かもしれないと思っていた。 – rmarimon

+0

携帯物が出来ます。基礎となる施設を抽象化するだけで済みます。しかし、標準的なネットワーキングツールを使用して単一の環境でバグをキャッチするのとは少し違っていても、すべてのバグをさまざまな環境で実行するのを難しくしています。だからこそ私はそれを勧めました。しかし、あなたがログインしているマシンに何らかの似たような能力が必要な場合は、マシンのポータブルバージョンが理にかなっていると思います。 – Axeman

答えて

1

簡単な方法の1つは、各マシンのスクリプトごとにディレクトリを作成することです。

1つのディレクトリに、実際のスクリプトが実行されます。 他のすべてのディレクトリでは、スクリプトは適切なサーバにsshを実行し、実際のスクリプトを実行します。

など。

スクリプトは、クライアント を追加するためのSSHサーバa -cサーバa-addclientツーSQL のsshサーバb -cサーバb-addclientツーのnagios SSHサーバC -cサーバC-addclient・ツー・Webプロキシスクリプトの追加

彼らがどこで走っているか知っている人もかなり簡単です。緩い形で

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

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

だから、どこからでも実行し、それが行うには正しいことをthatsの場合は、ローカルで実行されますそれ以外の場合は、適切な場所にセキュアシェルを行い、そこに同じコマンドを実行します。

関連する問題