clusterssh 프로그램 간단한 설치 및 사용방법 (여러대의 서버에 한꺼번에 명령 실행하는 프로그램)

문태준의 이미지
3035
points
11
points

clusterssh

작성자 : 문태준 http://tunelinux.pe.kr http://database.sarang.net

clusterssh는 여러대의 서버에 동시에 접속하여 한꺼번에 여러대의 서버에 명령을 내릴 수 있는 프로그램이다.
kldp 에서 이야기를 주고받다가 정보를 보게 되어 테스팅을 해보았다. http://kldp.org/node/87110

http://clusterssh.sourceforge.net/

해당 사이트에서 파일을 다운로드받아서 직접 설치할 수 도 있고 SRPM 파일을 이용하여 RPM으로 만들 수도 있다. 이 프로그램은 X-Windows 프로그램이므로 먼저 X를 사용할 수 있는 환경이 되어 있어야 한다.

perl 로 되어 있는 프로그램으로 사전에 아래 두가지 펄 모듈이 설치되어 있어야 한다.
Tk
X11::Protocol
CPAN을 이용한 펄 모듈을 설치하는 방법에 대해서는 아래 사이트를 참고한다.
http://perlmania.or.kr/pmdocs/lcg/cpan_module.html

cpan 명령어를 실행하면 설정을 위하여 몇가지 물어보는 항목이 있으며 잘 모르면 대부분 기본값을 사용하면 된다.
중간에 CPAN의 FTP 사이트(미러 사이트) 선택하는 항목이 나오는데 여기서는 asia-korea 를 선택해주면 된다.

# cpan
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support enabled
cpan> install Tk
cpan> install X11::Protocol

설치하면서 에러가 났는데 /usr/X11R6/include/ 파일을 찾았고 이 패키지는 xorg-x11-devel 에 해당한다.
그런데 다른 서버에서는 이 패키지가 없어도 설치가 잘 되었다. 아직 펄 패키지 구조에 대해서 잘 몰라서 무엇이 문제인지는 모르겠다.

이제 clusterssh 를 설치하면 된다.

사이트에서 소스를 받아서 아래와 같이 실행하면 된다. configure 에서 --prefix 옵션을 주어서 원하는 디렉토리에 설치할 수 있다.

$ ./configure
$ make
$ make install

SRPM을 이용하여 설치하는 경우이다.
clusterssh-3.19.1-1.src.rpm 파일을 다운로드받았다.
# rpm -ivh clusterssh-3.19.1-1.src.rpm
# cd /usr/src/redhat/SPECS/
# vi clusterssh.spec

여기서 "Requires: perl-Tk perl-X11-Protocol" 항목이 있는데 해당 모듈을 rpm 으로 설치한것이 아니고 CentOS 에서 기본 제공하지 않는 모듈이므로 이 부분을 주석처리하고 rpm을 만든다.

# rpmbuild -ba clusterssh.spec

# ls /usr/src/redhat/RPMS/noarch/
clusterssh-3.19.1-1.noarch.rpm

이제 이 프로그램을 설치한다.

# rpm -ivh clusterssh-3.19.1-1.noarch.rpm
error: Failed dependencies:
perl(Tk) >= 800.022 is needed by clusterssh-3.19.1-1.noarch
perl(Tk::Dialog) is needed by clusterssh-3.19.1-1.noarch
perl(Tk::LabEntry) is needed by clusterssh-3.19.1-1.noarch
perl(Tk::Xlib) is needed by clusterssh-3.19.1-1.noarch
perl(X11::Keysyms) is needed by clusterssh-3.19.1-1.noarch
perl(X11::Protocol) is needed by clusterssh-3.19.1-1.noarch
perl(X11::Protocol::Constants) is needed by clusterssh-3.19.1-1.noarch

위와 같이 에러가 나는데 --nodeps 옵션으로 강제설치한다.
프로그램에서 해당 perl 모듈에 대한 의존성을 검사하는 것이 있어서 문제가 생기는 듯한데 앞에서 해당 펄 모듈을 설치했다면 작동에는 문제가 없다.

# rpm --nodeps -ivh clusterssh-3.19.1-1.noarch.rpm
Preparing... ########################################### [100%]
1:clusterssh ########################################### [100%]

# rpm -ql clusterssh
/usr/bin/cssh
/usr/share/applications/clusterssh.desktop
/usr/share/doc/clusterssh-3.19.1
/usr/share/doc/clusterssh-3.19.1/AUTHORS
/usr/share/doc/clusterssh-3.19.1/COPYING
/usr/share/doc/clusterssh-3.19.1/ChangeLog
/usr/share/doc/clusterssh-3.19.1/NEWS
/usr/share/doc/clusterssh-3.19.1/README
/usr/share/icons/hicolor/24x24/apps/clusterssh.png
/usr/share/icons/hicolor/32x32/apps/clusterssh.png
/usr/share/icons/hicolor/48x48/apps/clusterssh.png
/usr/share/man/man1/cssh.1.gz

이제 프로그램을 사용해보자.

# cssh joon@test1.co.kr joon@test2.co.kr

위와 같이 원하는 사용자, 서버이름을 차례대로 입력하면 된다.

여기서 위의 서버, 유저명을 일일이 입력하지 않고 설정파일을 이용할 수 있다.
/etc/clusters 파일에 아래와 같이 지정한다.
[user@] [user@] [...]

# List of servers in live
live admin1@server1 admin2@server2 server3 server4

이제 cssh live 명령어로 간단히 실행을 할 수가 있다.

설정파일은 /etc/csshrc 또는 $HOME/.csshrc 파일에 둔다.
clusters 옵션을 이용하여 /etc/clusters 파일에 지정한 것 태그를 여러개 한꺼번에 이용하는 것도 가능하다.
man page 를 보면 쉽게 이해가 갈 것이다.

M.W.Park의 이미지
6723
points

좋은 글

3
points

좋은 글 감사합니다.

근데, 이거 사용하면 서버 여러 대를 한번에 말아먹을 수 있는거죠? ^^;

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

문태준의 이미지
3035
points

네, 간단하게 말아먹겠죵...

2
points

네, 간단하게 말아먹겠죵...
그런 부담이야 항상 있는거죠. 스크립트 하나만 잘못 돌려도....
항상 사전에 충분한 테스팅을~

---------------------------
문태준
http://tunelinux.pe.kr
http://database.sarang.net

권순선의 이미지
59862
points

재미있는 내용 잘

2
points

재미있는 내용 잘 읽었습니다. +1점 날립니다~

pung96의 이미지
3173
points

저는 항상 간단한

2
points

저는 항상 간단한 스크립트를 만들어서 썼었는데 이것도 좋네요.

작업 환경에 따라서...

2
points

작업 환경에 따라서 다르겠지만....
저의 경우는 이 명령으로 많은 시간을 절약하고있습니다.
매일 아침 모든 서버에 일괄적으로 적용하는 일이 있었는데...
각 서버마다 환경을 동일하게 맞추니 그전에 꽤 귀찮았던 일이
아주 간단하고 편해졌습니다...

환골탈태의 이미지
1832
points

구성이 조금 다른

1
point

구성이 조금 다른 서버때문에 일괄작업시 신경쓰이는 부분이 있었고
그룹을 나누어서 사용하기도 했지만 웬지 한방에 작업하고 싶었습니다.
그래서 고민 쪼금 하다가...노후화된 서버들을 통합하고 정리해버렸습니다. =_=;;
이제는 한방에 명령어 날려버립니다. ^^
하지만 항상 명령어 칠때마다 겁이 나긴 합니다.
근데 한글 쓰기가 좀 어렵군요.. .
__________________________________________________
모두 다 Feisty로 바꾸었습니다.

무서워요

1
point

sudo명령에 timestamp를 0으로 주는것처럼,
이것도 너무 편해지면 위험한것 같습니다. :'(
스크립트 만들어서 쓰곤 하는데, 여기서 더 편해지면 큰일낼것만 같아 무서워요 ㅠㅠ

--
Deisys, in the middle of the world, being with you . . . . . .

좋은글 감사합니다

0
points

감사합니다.

0
points

언제 한번 설치해보려나.

nEW

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.