Альтернатива кластеру для управління декількома серверами SSH [закрито]


11

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

Одна з слабких місць у Clusterssh полягає в тому, що мої сервери використовують автентифікацію на основі ключів, з паролем для входу, і немає можливості ввійти на сервери за допомогою приватного ключа.

Чи є альтернатива, яка підтримує автентифікацію з приватними ключами?


У чому ваша проблема pssh? Вам потрібна паралельна або просто програма для управління кількома серверами SSH?
кванта

мені фактично потрібно побачити в режимі реального часу декілька типів команд, які я запускаю на серверах. так, як це робить Cluster-ssh.
Фархан

2
Погляньте на варіант pssh's -P.
кванта

2
@Farhan, чому ти не використовуєш ansible?
c4f4t0r

Відповіді:


6

Погляньте на Rundeck - http://rundeck.org/


це здається гарним, але я погано застряг у ДОДАТКУВАННЯ вузлів до нього. чи є простий спосіб додати до нього сервери? оскільки він приймає лише конкретні файли на основі шаблону xml для вузлів, які потрібно додати :(
Farhan

9
  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 Connection Manager
  3. PAC Manager

5

Ви можете піти цілком і встановити систему управління конфігурацією, наприклад, Ляльковий або шеф-кухар . Ви не згадали, скільки вузлів ви насправді намагаєтесь керувати, тому це може бути зайвим, але, звичайно, ви можете центрально керувати багатьма машинами таким чином. Якщо ти зараз маленький, але зростаєш, ти можеш також захотіти створити, скажімо, шеф-кухаря, перш ніж набудеш такого набагато більшого.

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


У мене є близько 15-20 server.i вже маю лялечку зі мною, але мені потрібна взаємодія в реальному часі з усіма SSH-терміналами для виконання деяких завдань.
Фархан

А, добре. Я думаю, що лялька не має ssh.
cjc

4

Я використовую сценарії очікування для автоматизації входів (тим більше, що я маю пройти крізь ямбову коробку і ввести chroot і потрібно ввести багато паролів) і зробив кілька "налаштувань" для налаштування cssh. Отже, у мене в основному папці bin цей "основний скрипт", який дав "ім'я сервера / псевдонім", він переносить мене на сервер, який я хочу і куди хочу.

У ~ / .clusterssh / config я встановив параметр "ssh", щоб він вказував на мій сценарій, також "ssh_args" повинен бути встановлений на якийсь нешкідливий / підроблений аргумент, це тому, що у cssh є список аргументів за замовчуванням, якщо він фактично порожній список за замовчуванням в кінцевому підсумку буде в сценарії.

Таким чином, скрипт (у кожному вікні / терміналі) отримає це аргументи і 1 з аргументів, наданих 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

Сподіваємось, що це допоможе комусь іншому.



2

Ви також повинні подивитися на MCollective , який, мабуть, є найкращим і гнучким способом взаємодії з декількома серверами в режимі реального часу. Це трохи зобов’язання правильно налаштувати і може бути трохи вище за ваші потреби, але це безумовно перемагає pssh, Clusterssh та всі інші рішення на базі SSH. І як тільки ви його встановите, ви, мабуть, нічого, чого не зможете зробити, якщо ви знаєте трохи Рубі.


Відмова від відповідальності: MCollective є від лялькових.
sjas

1

Я задав собі те саме питання, оскільки мені було зрозуміло, що залежність clusterssh від X11 або XQuartz на Mac OS X дратує, а крім того, що термінальні вікна, відкриті clusterssh, виглядали неприємніше, ніж ті, що в Terminal.app

Ось як я натрапив на тмукс-сценарій від Йорга Ясперта у своєму блозі: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html

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


0

Підказка bash працює для простих речей:

складіть список серверів у серверах.txt, один рядок на кожен сервер.

тоді зробіть:

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

1
Я хочу інтерактивний спосіб використовувати всі сервери. Баш не можу допомогти в цьому випадку. Кластер ssh найкраще працює в цьому випадку, але обмежений.
Фархан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.