Clusterssh alternativa para gerenciar múltiplos servidores SSH [closed]

9

Existe alguma alternativa ao Clusterssh, pssh etc, para gerenciar múltiplos servidores baseados em ssh através de uma interface?

Uma fraqueza no Clusterssh é que meus servidores usam autenticação baseada em chave, com o passhprase para efetuar login, e não há como fazer login em servidores usando a chave privada.

Existe alguma alternativa disponível que suporte autenticação com chaves privadas?

    
por Farhan 28.08.2012 / 15:20

8 respostas

6

Dê uma olhada no Rundeck - link

    
por 28.08.2012 / 15:25
9
  1. Tecido

    Defina suas tarefas primeiro:

    from fabric.api import *
    
    @parallel
    @hosts('192.168.3.118', '192.168.6.142')
    
    def hostname():
        run('hostname')
    

    Em seguida, executando por meio da ferramenta de linha de comando 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. Gerenciador de conexões do Gnome
  3. Gerente do PAC
por 28.08.2012 / 16:46
5

Você pode usar o hog e instalar um sistema de gerenciamento de configurações como Puppet ou Chef . Você não mencionou quantos nós você está realmente tentando gerenciar, então isso pode ser um exagero, mas, certamente, você pode controlar centralmente muitas máquinas dessa maneira. Se você é pequeno agora, mas está crescendo, talvez também queira configurar, digamos, Chef, antes de ficar muito maior.

Se você precisar executar comandos ad hoc em um conjunto específico de nós, poderá executar algo como knife ssh 'roles:webserver' 'hostname' (o knife é a ferramenta de linha de comando do chef) para executar o comando hostname para todos os nós que possuem o servidor web papel.

    
por 28.08.2012 / 16:40
4

Eu uso espero que scripts automatizem os logins (especialmente porque eu tenho que passar por uma caixa jumb e entrar em um chroot e muitas senhas devem ser digitadas) e fizeram alguns "ajustes" na configuração do cssh. Então, eu tenho este "script principal" na minha pasta bin que, dado um "nome do servidor / alias", me leva para o servidor que eu quero e onde eu quero.

No ~ / .clusterssh / config eu configurei o parâmetro "ssh" para apontar para o meu script, e também "ssh_args" deve ser configurado para algum argumento innocuous / fake arg, porque o cssh tem sua lista args padrão, se deixada vazia, na verdade, a lista padrão acabará sendo para o script.

Assim, o script (em cada janela / terminal) receberá este args e 1 dos args dados ao cssh, o script recupera de um arquivo para o servidor especificado as credenciais definidas e as etapas que devem ser executadas para para chegar onde eu quero, então ele chama o "código de espera" com todos esses dados.

~ / .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

então eu costumo chamá-lo com algo parecido com isto

# cssh q4 q5 q6 q7

está funcionando também com "aliases de cluster" tendo o cluster "qTodos q4 q5 q6 q7" Posso chamar com cssh qTudo

Espera que ajude alguém.

    
por 17.06.2015 / 23:28
4

Eu prefiro o shmux para executar o mesmo comando em muitos hosts em paralelo.

    
por 28.08.2012 / 20:35
2

Você também deve analisar o MCollective , que é provavelmente a melhor e mais flexível maneira de interagir com vários servidores em reais. Tempo. É um pouco complicado configurar corretamente e pode ser um pouco exagerado para as suas necessidades, mas certamente supera o pssh, o Clusterssh e todas as outras soluções baseadas em SSH. E uma vez que você o tenha, provavelmente não há nada que você não possa fazer, desde que você saiba um pouco de Ruby.

    
por 28.08.2012 / 18:57
1

Eu me fiz a mesma pergunta, já que achei a dependência do clusterssh em X11 ou XQuartz no Mac OS X irritante e, além disso, as janelas de terminal abertas por clusterssh ficaram mais feias que as do Terminal.app

Foi assim que me deparei com um script baseado em tmux de Joerg Jaspert em seu blog: link

Basically you type tm ms HOST1 user@HOST2 and it opens a session with one tmux window consisting of two panes

    
por 27.08.2015 / 23:49
0

O prompt do bash funciona para coisas simples:

faça uma lista de servidores em servers.txt, uma linha por servidor.

faça:

$ while read $server; do ssh user@$server "command args"; done < servers.txt
    
por 28.08.2012 / 15:48