2011-07-01 3 views
0

다른 클라이언트 서버를 관리하는 데 사용되는 세 대의 서버가 있습니다. 관리 서버 중 하나에는 Nagios가 있고 다른 하나에는 웹 프록시가 있으며 다른 서버에는 LDAP 및 MySQL 서버가 있습니다.다른 서버에서 실행되는 스크립트 만들기

새 클라이언트 서버를 포함해야 할 때마다 서버 A에 로그인하고 SQL 항목을 만들고 nagios로 이동하여 항목을 만들고 웹 서버로 이동하여 프록시를 추가해야합니다. 너는 그림을 얻는다. 내가 원하는 것은 모든 서버가 '/ opt/boxes/scripts`와 같은 스크립트 디렉토리를 공유 할 수 있도록하는 것이며, 스크립트를 실행하여 어디에서 실행할 수 있는지를 알 수 있습니다. 서버 A에 있고 서버 B에서 실행되어야하는 스크립트 X를 실행한다고 가정 해보십시오. 실제로 서버 B에서 실행됩니다.

간단한 방법이 있습니까? 가급적이면 perl베이스는 제가 약간 알고있는 것입니다.

+0

Perl을 사용하여 네트워킹을 수행하는 시스템에 맞지 않는 이유는 무엇입니까? 데이터베이스에 뭔가를하기 위해 SQL을 생성해야한다면'DBI '를 사용할 수 있습니다. FTP를 사용하여 파일을 푸시 할 수 있으며 FTP를 통해 파일을 읽고 쓸 수 있습니다. 필자는 Perl을 사용하여 복잡한 네트워크 상호 작용을 스크립트로 작성하고 하나의 시스템에서 실행합니다. FTP, 텔넷 등을 프로그래밍 할 수있는 인터페이스를 얻었습니다. – Axeman

+0

@Axeman, 저는 이것을 용이하게하는 일종의 프레임 워크를 찾고있었습니다. 나는 ssh와 scp를하는 것이 간단하기 때문에이 모든 서버에 ssh 공개 키를 가지고있다. 다른 방법이 있을지도 모른다고 생각했습니다. – rmarimon

+0

휴대용 물건이 가능합니다. 기본 시설을 추상화하면됩니다. 그러나 다른 환경에서 실행되는 모든 버그를 잡는 것이 더 어렵습니다. 표준 네트워킹 도구를 사용하여 단일 환경에서 버그를 잡는 것보다 약간 다를지라도. 그것이 내가 그것을 추천 한 이유입니다. 그러나, 당신이 로그인 한 어떤 머신에 어떤 비슷한 능력을 원한다면, 나는 휴대용 컴퓨터의 버전이 이치에 맞다고 상상할 수 있습니다. – Axeman

답변

1

쉬운 방법 중 하나는 각 시스템의 각 스크립트에 대한 디렉토리를 만드는 것입니다.

하나의 디렉토리에서 실제 스크립트가 실행됩니다. 다른 모든 디렉토리에서 스크립트는 적절한 서버로 ssh를 실행하고 실제 스크립트를 실행합니다.

예.

스크립트 클라이언트 를 추가 할 수 ssh를 ServerA가 -c ServerA가-addclient - 투 - SQL ssh를 서버 B -c 서버 B-addclient - 투 - Nagios의 ssh를 serverc -c serverc - addclient - 투 - 웹 프록시 스크립트를 추가

그들이 어디에서 뛰는 지 알기가 너무 쉽습니다.

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

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

느슨한 형태에서

그래서 옳은 일을 할 먹으 렴, 그렇지 않으면 적절한 장소에 보안 쉘을 수행하고이 같은 명령을 실행하는 경우는 로컬로 실행, 어디에서나 실행합니다.