Вопрос: Альтернатива Clusterssh для управления несколькими SSH-серверами [закрыта]


Есть ли альтернатива Clusterssh, pssh и т. Д. Для управления несколькими серверами на основе ssh через один интерфейс?

Одна из слабых сторон Clurerssh заключается в том, что мои серверы используют аутентификацию на основе ключей, а passhprase - для входа в систему, и нет возможности входа на серверы с использованием закрытого ключа.

Есть ли какая-либо альтернатива, которая поддерживает аутентификацию с помощью приватных ключей?


9
2017-08-28 13:20


Источник


В чем проблема с pssh? Вам нужна параллельная или просто программа для управления несколькими SSH-серверами? - quanta
я действительно должен видеть вывод в режиме реального времени нескольких типов команд, которые я запускаю на серверах. как и Cluster-ssh. - Farhan
Взгляни на pssh«s -P вариант. - quanta
@Farhan, почему вы не используете возможности? - c4f4t0r


Ответы:


Взгляните на Rundeck - http://rundeck.org/


6
2017-08-28 13:25



это кажется хорошим, но я плохо застрял в ADDING Узлы к нему. есть ли простой способ добавить к нему серверы? поскольку он принимает только определенные файлы на основе xml-шаблонов для добавления узлов :( - Farhan


  1. ткань

    Сначала определите свои задачи:

    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.
    
  2. Менеджер подключений Gnome
  3. Менеджер PAC

9
2017-08-28 14:46





Вы можете отправиться на целый свиньи и установить система управления конфигурацией как Кукольный или шеф-повар, Вы не указали, сколько узлов вы на самом деле пытаетесь управлять, поэтому это может быть излишним, но, конечно, вы можете централизованно управлять множеством машин таким образом. Если вы сейчас маленьки, но растут, вы также можете настроить, скажем, шеф-повар, прежде чем вы получите гораздо больше.

Если вам нужно запускать специальные команды по определенному набору узлов, вы можете сделать что-то вроде knife ssh 'roles:webserver' 'hostname' (нож - инструмент командной строки для шеф-повара), чтобы запустить hostname команда для всех узлов, имеющих роль веб-сервера.


5
2017-08-28 14:40



У меня около 15-20 серверов. У меня уже есть марионетка, но мне нужно взаимодействие в реальном времени со всеми терминалами ssh для некоторых задач. - Farhan
Ах хорошо. Наверное, у марионетки нет средства ssh. - cjc


я использую ожидать скрипты для автоматизации входа в систему (особенно потому, что я должен пройти через jumb box и войти в chroot и ввести много паролей) и сделал некоторые «настройки» в конфиге cssh. Итак, у меня есть этот «основной сценарий» в моей папке bin, в котором указано «имя / псевдоним сервера», он выводит меня на сервер, который я хочу и где хочу.

В ~ / .clusterssh / config я установил параметр «ssh» для указания на мой скрипт, а также «ssh_args» должен быть установлен на какой-то безобидный / фальшивый arg, потому что cssh имеет список аргументов по умолчанию, список по умолчанию окажется в скрипте.

Таким образом, скрипт (в каждом окне / терминале) получит эти аргументы и 1 из аргументов, предоставленных cssh, сценарий он восстанавливает из файла для данного сервера установленные учетные данные и шаги, которые он должен выполнить, чтобы прибыть туда Я хочу, затем он называет «ожидаемый код» всеми этими данными.

~ / .clusterssh / конфигурации

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

Надеюсь, это поможет кому угодно.


4
2018-06-17 21:28





я предпочитаю shmux для выполнения одной и той же команды на многих хостах параллельно.


4
2017-08-28 18:35





Вы также должны посмотреть на MCollective, что, вероятно, лучший и самый гибкий способ взаимодействия с несколькими серверами в режиме реального времени. Это немного необходимо для правильной настройки и может быть немного превыше всего для ваших нужд, но это, безусловно, бьет pssh, Clusterssh и все другие решения на базе SSH. И как только вы его на месте, вы, вероятно, ничего не можете с этим сделать, если знаете немного Ruby.


2
2017-08-28 16:57



Отказ от ответственности: MCollective - от марионетки. - sjas


Я задал себе тот же вопрос, так как я обнаружил, что зависимость Clusterssh от X11 или XQuartz от Mac OS X раздражает, и, кроме того, окна терминала, открытые кластерами, выглядят более уродливыми, чем те, что находятся в Terminal.app

Вот как я наткнулся на сценарий на основе tmux от Йорга Джасперта в своем блоге: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

В основном вы печатаете tm ms HOST1 user@HOST2 и он открывает сеанс с одним окном tmux, состоящим из двух панелей


1
2017-08-27 21:49





Команда bash работает для простых вещей:

составить список серверов в server.txt, по одной строке на сервер.

затем выполните:

$ while read $server; do ssh user@$server "command args"; done < servers.txt

0
2017-08-28 13:48



Мне нужен Интерактивный способ использования всех серверов. bash can not help в этом случае. Кластер ssh работает лучше всего в этом случае, но его ограниченный. - Farhan