하나의 인터페이스를 통해 여러 ssh 기반 서버를 관리하기위한 Clusterssh, pssh 등의 대안이 있습니까?
Clusterssh의 한 가지 약점은 내 서버가 암호 기반 로그인으로 키 기반 인증을 사용하고 개인 키를 사용하여 서버에 로그인 할 수있는 방법이 없다는 것입니다.
개인 키 인증을 지원하는 다른 대안이 있습니까?
pssh
의 -P
옵션을 살펴보십시오 .
하나의 인터페이스를 통해 여러 ssh 기반 서버를 관리하기위한 Clusterssh, pssh 등의 대안이 있습니까?
Clusterssh의 한 가지 약점은 내 서버가 암호 기반 로그인으로 키 기반 인증을 사용하고 개인 키를 사용하여 서버에 로그인 할 수있는 방법이 없다는 것입니다.
개인 키 인증을 지원하는 다른 대안이 있습니까?
pssh
의 -P
옵션을 살펴보십시오 .
답변:
Rundeck을 보라 - http://rundeck.org/
먼저 작업을 정의하십시오.
from fabric.api import *
@parallel
@hosts('192.168.3.118', '192.168.6.142')
def hostname():
run('hostname')
그런 다음 fab
명령 행 도구 를 통해 실행하십시오 .
$ fab -f /path/to/.py/file hostname
[192.168.3.118] Executing task 'hostname'
[192.168.6.142] Executing task 'hostname'
[192.168.6.142] run: hostname
[192.168.3.118] run: hostname
[192.168.6.142] out: SVR040-6142
[192.168.3.118] out: SVR040-3118.localdomain
Done.
당신은 전체 돼지를 가서 설치할 수있는 구성 관리 시스템 과 같은 인형 이나 요리사 . 실제로 관리하려는 노드 수에 대해서는 언급하지 않았으므로 이는 과도 할 수 있지만, 많은 방식으로 많은 머신을 중앙에서 제어 할 수 있습니다. 지금은 작지만 성장하고 있다면 훨씬 더 커지기 전에 Chef를 설정하는 것이 좋습니다.
특정 노드 세트에 대해 임시 명령 knife ssh 'roles:webserver' 'hostname'
을 실행 hostname
해야하는 경우 웹 서버 역할이있는 모든 노드에 대해 명령 을 실행하기 위해 (knife는 chef의 명령 행 도구 임) 수행 할 수 있습니다.
나는 예상 스크립트를 사용 하여 로그인을 자동화합니다 (특히 점보 상자를 통과하고 chroot를 입력해야하며 많은 암호를 입력해야하기 때문에) cssh의 구성에 약간의 "조정"을했습니다. 따라서 "서버 이름 / 별칭"이 지정된 bin 폴더에이 "메인 스크립트"가 있으며 원하는 서버와 원하는 서버로 이동합니다.
~ / .clusterssh / config에서 "ssh"매개 변수를 스크립트를 가리 키도록 설정했습니다. 또한 "ssh_args"도 무해한 / 가짜 arg로 설정해야합니다. 왜냐하면 실제로 비워두면 cssh에 기본 args 목록이 있기 때문입니다. 기본 목록은 스크립트가됩니다.
따라서 스크립트 (각 창 / 터미널에 있음)는이 인수와 cssh에 지정된 인수 중 하나를 수신합니다.이 스크립트는 지정된 서버에 대한 파일에서 자격 증명이 설정 한 위치와 도착하기 위해 수행해야하는 단계를 복구합니다. 원하는 경우 모든 데이터와 함께 "예상 코드"를 호출합니다.
~ / .clusterssh / config
ssh=/home/user/bin/qs.sh
ssh_args=-a
qs.sh
#!/bin/bash
export PATH=~/bin:$PATH
shift
case $1 in
q4|q5|q6|q7|q8|q9)
essh user1@axt$1
### essh it's some little bash script that does the things I said before and in the end it launches the expect
;;
q1|q2|q3)
essh axtr@axt$1
;;
*)
echo "GOOH"
esac
그래서 나는 보통 이것을 이런 식으로 부릅니다
# cssh q4 q5 q6 q7
클러스터가 "qAll q4 q5 q6 q7"인 "클러스터 별명"에서도 작동합니다. cssh qAll로 호출 할 수 있습니다.
다른 사람에게 도움이되기를 바랍니다.
또한 여러 서버와 실시간으로 상호 작용하는 가장 좋고 유연한 방법 인 MCollective 도 살펴 봐야 합니다. 올바르게 설정하는 것은 약간의 임무이며 필요에 따라 약간 위에있을 수 있지만 pssh, Clusterssh 및 기타 모든 SSH 기반 솔루션을 확실히 능가합니다. 그리고 일단 루비를 알고 있다면, 당신이 그것을 할 수 없을 것입니다.
Mac OS X에서 X11 또는 XQuartz에 대한 clusterssh의 의존성이 성가신 것을 발견하고 clusterssh에 의해 열린 터미널 창이 Terminal.app의 창보다 못 생겼기 때문에 나 자신도 같은 질문을했습니다.
그것이 그의 블로그에서 Joerg Jaspert의 tmux 기반 스크립트를 우연히 발견 한 방법입니다. http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html
기본적으로 입력하면
tm ms HOST1 user@HOST2
두 개의 창으로 구성된 하나의 tmux 창이있는 세션이 열립니다.
pssh
있습니까? 여러 SSH 서버를 관리하려면 병렬 또는 프로그램이 필요합니까?