pssh는 parallel-ssh의 약자로 여러 대의 서버에 동일한 명령을 한방에 내릴 수 있는 기능을 제공합니다.

유사한 기능을 가진 툴이 여러 개가 존재함으로 원하는 툴을 사용하면 되고 저는 pssh를 일단 사용하고 있습니다. 


참고로 다음 URL에서 소스코드나 PDF 문서를 다운로드 할 수 있습니다.  http://www.theether.org/pssh/



예를 들어서 다음과 같은 일을 할 때 편리합니다.


Server A  ---------------------- Server B-1 (192.168.0.11)

(192.168.0.10)                ┣ Server B-2 (192.168.0.12)
                                         ┣ Server B-3 (192.168.0.13)
                                         ┣ Server B-4 (192.168.0.14)
                                         ┣ Server B-5 (192.168.0.15)
                                         ┣ Server B-6 (192.168.0.16)
                                         ┣ Server B-7 (192.168.0.17)
                                         ┣ Server B-8 (192.168.0.18)
                                         ┣ Server B-9 (192.168.0.19)

Server A에서 Server B-x(1-9)에 동일하게 apt-get install -y unzip   명령어를 수행하고자 하신다면 pssh가 적절합니다.


1. pssh를 우분투(ubuntu)에 설치하기

  apt-get install -y pssh
  위와 같이 수행하시면 됩니다. 그럼 /usr/bin/  폴더 아래 실행파일들이 생성됩니다. 

2. pssh 실행파일 

  /usr/bin/parallel-ssh  에 위치하고 있습니다. 
  다른 운영체제에서는 pssh로 설치되는 것 같은데 Ubuntu에서는 parallel-ssh로 명령어가 생성됩니다.

3. pssh help
  
  parallel-ssh --help 하시면 됩니다. help만 딱 보시면 리눅스 많이 사용하시는 분들은 그냥 사용이 가능하신 정도로 쉽습니다. 

4. hosts 파일 생성 

  그러니깐 parallel-ssh 는 여러 대의 서버에 원격으로 명령어를 실행할 수 있습니다. 
  위에 예로 Sever B-1 ~~~~ B-9가 실제 명령어를 수행할 서버이고 
  Server A는 parallel-ssh를 설치하고 명령어를 입력하는 서버이죠.

  hosts 는 Server B-1 ~~~~ B-9가 됩니다. 
  vi로 아래와 같이 만들어주시면 됩니다.

  vi serverHost.txt   (이름은 별로 중요하지 않습니다. 어차피 parallel-ssh 입력할 때 잘 입력해주면 되니깐요)
  내용은 ...
  192.168.0.11
  192.168.0.12
  192.168.0.13
  192.168.0.14
  192.168.0.15
  192.168.0.16
  192.168.0.17
  192.168.0.18
  192.168.0.19
   쭉 IP만 작성해주셔도 됩니다.

5. 명령 내리기 

  마지막입니다. parallel-ssh로 unzip을 설치하는 명령어를 내려보면 아래와 같습니다.
  
  parallel-ssh -h serverHost.txt -l root apt-get install -y unzip

  -h 옵션은 hosts 파일 이름입니다.
  -l (영어 소문자 엘 입니다) 옵션은 어떤 사용자로 명령어를 수행할 것인지 정해주는 것입니다. 저는 root로 했습니다. 
  그리고 한칸 띄고 원하는 명령어를 작성해주면 됩니다. 위 예제에서 파란색으로 표시한 것이죠.
  
  성공하면 아래와 같은 형태로 출력이됩니다.
  저는 4대의 서버에 실행시켜봤고, 아이피번호는 50~53이였습니다. 위에 예제와는 다릅니다. 혼돈 없으시길..
 



  








+ Recent posts