본문 바로가기

Skills/System

clusterssh로 여러서버에 동시작업하기..

문태준님의 KLDP문서를 보고..

사무실 이전을 하며 서버들의 접속허용IP 변경부분을 expect로 처리하려고 고민하던찰나,

이걸 사용하면 돼겠구나라고 느껴 셋팅해봤다..

간단하다.

http://clusterssh.sourceforge.net/ 에서 소스rpm 이나 소스 tar볼을 다운받는다.

설치하기전 우선적으로 perl 과 cpan이 사용가능해야 한다.

물론 XWindow 환경이여야 하더라.. ( TK로 돌아가기때문에.. X 안쓰고는 실패했다.. )

cpan으로 들어간다.

cpan > install Tk
주루루루룩
인스톨 완료어쩌구쏼라쏼라

cpan > install X11::Protocol
주루루루룩

인스톨 완료 어쩌구쏼라쏼라..

Cpan을 빠져 나온뒤, 소스 RPM 설치를 하고 바이너리빌드를 한다.
참고로 spec에서 TK와 X11::Protocol에 대한 필수요구부분(requires)을 주석처리해줘야한다.
왜냐고? 직접설치한거니까...

root ~]# rpm -ivh clusterssh-3.19.1-1.src.rpm
root ~]# cd /usr/src/redhat/SPECS
root ~]# vi clusterssh.spec   // Requires: perl-Tk perl-X11-Protocol 주석
root ~]# rpmbuild -ba clusterssh.spec
주루룩....빌드완료..
root ~]# rpm -Uvh ../RPMS/noarch/clusterssh-3.19.1-1.noarch.rpm
################### [ 100% ]

뭐 이런식으로 설치 완료되었다..

그냥 쉘에서 바로 cssh를 실행해 보면 작은 박스창이 뜬다..이곳에서 서버를 접속하고,
명령어를 내리는건데, 간단하게 "cssh userid@Server" 이렇게 접속해서 사용하면된다.
미리 여러대의 서버정보를 /etc/clusters 에 기록해 놔도 된다.

root ~]# vi /etc/clusters

# Server List
www   user@xxx.xxx   user@yyy.yyy   user@zzz.zzz
dbs   user@x11.x11   user@y11.y11   user@z11.z11

root ~]# cssh www

이런 식으로 앞에 그룹명(Tag 라고 한다) 을 기록하고 서버리스트를 기록한뒤
물론 기본적인 접속 유저정보가 그룹별로 동일해야만 한다는 전제가 있긴하지만....
LDAP 이라든지..NIS등이라든지 그런거 안써도 일단 기본적인 접속용 계정은 동일한게
관리하기 편하지 않을까.....라는 생각을...

"cssh 그룹명(태그명)" 이라고 입력해주면 그 그룹의 서버들로 일괄접속을 한다..두두둥!!

이걸로 expect 스크립트를 굳이 짜지 않아도 여러 쉘에 한번에 명령함으로써
각각의 일괄적인 부분들을 처리했다..
사실 노트북을 귀찮아서 저번주 내내 안가지고 오는바람에 새로 expect 스크립트 작성하는게
매우매우 귀찮았다던......캭...