Czy istnieje alternatywa dla Clusterssh, pssh itp., Aby zarządzać wieloma serwerami opartymi na ssh za pośrednictwem jednego interfejsu?
Jedną słabością Clusterssh jest to, że moje serwery używają uwierzytelniania opartego na kluczach, z hasłem do logowania, i nie ma sposobu, aby zalogować się do serwerów za pomocą klucza prywatnego.
Czy jest jakaś alternatywa, która obsługuje uwierzytelnianie za pomocą kluczy prywatnych?
linux
ssh
cluster
remote-access
Farhan
źródło
źródło
pssh
? Potrzebujesz równoległego czy tylko programu do zarządzania wieloma serwerami SSH?pssh
„s-P
opcja.Odpowiedzi:
Spójrz na Rundeck - http://rundeck.org/
źródło
Tkanina
Najpierw określ swoje zadania:
Następnie wykonanie za pomocą
fab
narzędzia wiersza poleceń:źródło
Możesz przejść cały wieprz i zainstalować system zarządzania konfiguracją, taki jak Puppet lub Chef . Nie wspomniałeś o tym, ile węzłów faktycznie próbujesz zarządzać, więc może to być przesada, ale z pewnością możesz w ten sposób centralnie kontrolować wiele komputerów. Jeśli jesteś teraz mały, ale rośniesz, możesz też chcieć założyć szefa kuchni, zanim staniesz się znacznie większy.
Jeśli potrzebujesz uruchamiać polecenia ad hoc na określonym zestawie węzłów, możesz zrobić coś takiego
knife ssh 'roles:webserver' 'hostname'
(nóż jest narzędziem wiersza polecenia szefa kuchni), aby uruchomićhostname
polecenie dla wszystkich węzłów, które pełnią rolę serwera WWW.źródło
Używam skryptów expect do automatyzacji logowania (szczególnie dlatego, że muszę przejść przez skrzynkę jumb i wprowadzić chroot i trzeba wprowadzić wiele haseł) i zrobiłem kilka „poprawek” do konfiguracji cssh. Tak więc mam ten „główny skrypt” w folderze bin, który nadał „nazwę / alias serwera”, zabiera mnie na serwer, który chcę i gdzie chcę.
W ~ / .clusterssh / config ustawiłem parametr „ssh”, aby wskazywał na mój skrypt, również „ssh_args” musi być ustawione na jakiś nieszkodliwy / fałszywy arg, to dlatego, że cssh ma domyślną listę argumentów, jeśli faktycznie jest pusta domyślna lista kończy się na skrypcie.
Tak więc skrypt (w każdym oknie / terminalu) otrzyma te argumenty i 1 argumenty podane cssh, skrypt, który odzyskuje z pliku dla danego serwera, ustawione poświadczenia i kroki, które należy wykonać, aby dotrzeć do miejsca Chcę, a następnie wywołuje „kod oczekiwania” z wszystkimi tymi danymi.
~ / .clusterssh / config
qs.sh
więc zwykle nazywam to tak
działa również z „aliasami klastrów” posiadającymi klaster „qWszystkie q4 q5 q6 q7” Mogę wywoływać za pomocą cssh qAll
Ma nadzieję, że pomoże to komukolwiek innemu.
źródło
Wolę shmux do wykonywania tego samego polecenia na wielu hostach równolegle.
źródło
Powinieneś także spojrzeć na MCollective , który jest prawdopodobnie najlepszym i najbardziej elastycznym sposobem interakcji z wieloma serwerami w czasie rzeczywistym. Prawidłowe skonfigurowanie jest trochę trudne i może być nieco lepsze niż twoje potrzeby, ale z pewnością przewyższa pssh, Clusterssh i wszystkie inne rozwiązania oparte na SSH. A kiedy już go umieścisz, prawdopodobnie nic nie możesz z tym zrobić, pod warunkiem, że znasz trochę Ruby.
źródło
Zadałem sobie to samo pytanie, ponieważ zależało mi na klastrowaniu od X11 lub XQuartz na Mac OS X, a ponadto okna terminali otwierane przez clusterssh wyglądały brzydiej niż na Terminal.app
Tak natknąłem się na skrypt oparty na tmuxie autorstwa Joerga Jasperta na jego blogu: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html
źródło
Podpowiedź bash działa na proste rzeczy:
utwórz listę serwerów w server.txt, po jednej linii na serwer.
następnie wykonaj:
źródło