clusterssh
문서소개
clusterssh는 여러대의 서버에 동시에 접속하여 한꺼번에 여러대의 서버에 명령을 내릴 수 있는 프로그램이다.
kldp 에서 이야기를 주고받다가 정보를 보게 되어 테스팅을 해보았다. http://kldp.org/node/87110
사전 설치준비
http://clusterssh.sourceforge.net/
해당 사이트에서 파일을 다운로드받아서 직접 설치할 수 도 있고 SRPM 파일을 이용하여 RPM으로 만들 수도 있다.
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 사용하기
이제 프로그램을 사용해보자.
# cssh joon@test1.co.kr joon@test2.co.kr
위와 같이 원하는 사용자, 서버이름을 차례대로 입력하면 된다.
여기서 위의 서버, 유저명을 일일이 입력하지 않고 설정파일을 이용할 수 있다.
/etc/clusters 파일에 아래와 같이 지정한다.
<tag> [user@]<server> [user@]<server> [...] # List of servers in live live admin1@server1 admin2@server2 server3 server4
이제 cssh live 명령어로 간단히 실행을 할 수가 있다.
설정파일은 /etc/csshrc 또는 $HOME/.csshrc 파일에 둔다.
clusters 옵션을 이용하여 /etc/clusters 파일에 지정한 것 태그를 여러개 한꺼번에 이용하는 것도 가능하다.
man page 를 보면 쉽게 이해가 갈 것이다.