리눅스 서버 관리 - Parallel SSH - SSH 를 이용해서 여러대 리눅스 머신으로 명령어 보내기
중앙 서버에서 여러대의 리눅스 서버로 명령어를 보내도록 만들어서 편하게 관리할 수 있습니다.
먼저 Parallel SSH 를 설치합니다. 유저 user 는 루트 root 로 설치합니다.
# Debian 또는 Ubuntu
apt install python-pip python-setuptools
pip install parallel-ssh
apt install pssh
# 레드헷 RHEL, CentOS
yum install python-pip python-setuptools
pip install parallel-ssh
yum install pssh
아래와 같이 3대의 서버가 있다고 한다면,
1번 서버 : 192.168.1.100 : 중앙서버 : 이 서버에만 로그인을 해서 명령을 실행합니다.
2번 서버 : 192.168.1.101 : 호스트1 : 원격 명령이 실행될 서버1
3번 서버 : 192.168.1.102 : 호스트2 : 원격 명령이 실행될 서버2
1번 서버 : 중앙서버에서 SSH 퍼블릭 키를 만듭니다.
marasong@vm-marasong:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/marasong/.ssh/id_rsa): [엔터]
Enter passphrase (empty for no passphrase): [엔터]
Enter same passphrase again: [엔터]
Your identification has been saved in /home/marasong/.ssh/id_rsa.
Your public key has been saved in /home/marasong/.ssh/id_rsa.pub.
The key fingerprint is:
생성된 퍼블릭 키값을 호스트1, 2 두 서버에 복사합니다.
cat ~/.ssh/id_rsa.pub
이런 형태로 나오는데,
2번 서버 : 192.168.1.101 / 3번 서버 : 192.168.1.102 : ~/.ssh/authorized_keys 파일에 저 내용을 복사합니다.
2번, 3번 서버에 .ssh 디렉토리가 없다면 디렉토리를 만들고 퍼미션을 수정합니다.
mkdir .ssh
chmod 700 .ssh
chmod 640 .ssh/authorized_keys
이제 1번 서버에서 2번, 3번 서버로 ssh 로그인을 해봅니다. 암호 없이 로그인이 가능해야 합니다.
ssh userID@192.168.1.101 -p 22
ssh userID@192.168.1.102 -p 22
2번, 3번 서버 정보를 hosts.test 파일로 저장합니다.
userID@192.168.1.101:22
userID@192.168.1.102:22
이제 아래와 같은 방법으로 여러 서버로 명령을 내릴 수 있습니다.
/usr/bin/parallel-ssh -i -h hosts.test "ls -al"
이걸 아래처럼 배시 스크립트로 만들어두면 편하게 이용할 수 있습니다.
#!/bin/bash
cmd_text=${1}
if [ -z "${cmd_text}" ]
then
# 입력 파라미터 값이 없을때 기본값 정의
cmd_text="ls"
fi
/usr/bin/parallel-ssh -i -h /home/ubuntu/hosts.test "${cmd_text}"
'Tech > Linux' 카테고리의 다른 글
크론탭 crontab 정리 (0) | 2019.04.05 |
---|---|
Bash - if 구문 (0) | 2018.10.18 |
CentOS 센트OS - 파라미터 최적화 스크립트 (0) | 2018.07.30 |
AWS 리눅스 SSH 접속 계정 정리 (0) | 2018.07.10 |
우분투 - 마리아디비 MariaDB 설치 (0) | 2018.07.03 |