GNU/Linux >> Tutoriales Linux >  >> Linux

Alternativa de Clusterssh para administrar múltiples servidores SSH

Solución 1:

  1. Tejido

    Defina sus tareas primero:

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

    Luego ejecutando a través del fab herramienta de línea de comandos:

    $ 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. Administrador de conexiones de Gnome
  3. Gerente de PAC

Solución 2:

Eche un vistazo a Rundeck - http://rundeck.org/

Solución 3:

Puede hacer todo lo posible e instalar un sistema de gestión de configuración como Puppet o Chef. No ha mencionado cuántos nodos está tratando de administrar, por lo que esto podría ser excesivo, pero, ciertamente, puede controlar de manera centralizada muchas máquinas de esta manera. Si eres pequeño en este momento, pero estás creciendo, es posible que también quieras configurar, por ejemplo, Chef, antes de que seas mucho más grande.

Si necesita ejecutar comandos ad hoc sobre un conjunto específico de nodos, puede hacer algo como knife ssh 'roles:webserver' 'hostname' (knife es la herramienta de línea de comando para chef) para ejecutar el hostname comando para todos los nodos que tienen la función de servidor web.

Solución 4:

Prefiero shmux para ejecutar el mismo comando en muchos hosts en paralelo.

Solución 5:

Utilizo secuencias de comandos expect para automatizar los inicios de sesión (especialmente porque tengo que pasar por un jumb box e ingresar en un chroot y se deben ingresar muchas contraseñas) e hice algunos "ajustes" en la configuración de cssh. Entonces, tengo esto " script principal" en mi carpeta bin que, dado un "nombre/alias de servidor", me lleva al servidor que quiero y donde quiero.

En ~/.clusterssh/config, configuré el parámetro "ssh" para que apunte a mi script, también "ssh_args" debe establecerse en algún argumento inocuo/falso, eso es porque cssh tiene su lista de argumentos predeterminada, si se deja vacío en realidad la lista predeterminada terminará siendo la del script.

Entonces el script (en cada ventana/terminal) recibirá estos argumentos y 1 de los argumentos dados al cssh, el script lo recupera de un archivo para el servidor dado, las credenciales configuradas y los pasos que debe seguir para llegar a donde Quiero, luego llama al "código de espera" con todos esos datos.

~/.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 [email protected]$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 [email protected]$1
    ;;
*)
    echo "GOOH"
esac

así que normalmente lo llamo con algo como esto

# cssh q4 q5 q6 q7

también funciona con "alias de clúster" teniendo el clúster "qAll q4 q5 q6 q7" Puedo llamar con cssh qAll

Espero que ayude a alguien más.


Linux
  1. Chrony:un cliente y servidor NTP alternativo para sistemas similares a Unix

  2. Ssh:¿script de shell para iniciar sesión en un servidor Ssh?

  3. ¿Tiempo de espera de conexión para el servidor Ssh?

  4. herramienta similar a teamviewer para ssh?

  5. Comando de Linux para esperar a que un servidor SSH esté activo

Cómo crear un usuario SFTP para una raíz de documentos del servidor web

Servidor SSH

Servidor de monitoreo Graylog en Ubuntu Linux para servidores/servicios de monitoreo

Administración de licencias de cPanel

ClusterSSH (cssh):administre múltiples sesiones SSH en Linux

Habilite el inicio de sesión con contraseña para SSH en la AMI de Amazon Linux