GNU/Linux >> Tutoriels Linux >  >> Linux

Alternative clusterssh pour gérer plusieurs serveurs SSH

Solution 1 :

  1. Tissu

    Définissez d'abord vos tâches :

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

    Puis exécution via le fab outil de ligne de commande :

    $ 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 de connexion Gnome
  3. Gestionnaire PAC

Solution 2 :

Jetez un oeil sur Rundeck - http://rundeck.org/

Solution 3 :

Vous pouvez aller jusqu'au bout et installer un système de gestion de configuration comme Puppet ou Chef. Vous n'avez pas mentionné le nombre de nœuds que vous essayez réellement de gérer, donc cela pourrait être exagéré, mais, certainement, vous pouvez contrôler de manière centralisée de nombreuses machines de cette façon. Si vous êtes petit en ce moment, mais que vous grandissez, vous pouvez également vous installer, disons, Chef, avant de devenir beaucoup plus grand.

Si vous devez exécuter des commandes ad hoc sur un ensemble spécifique de nœuds, vous pouvez faire quelque chose comme knife ssh 'roles:webserver' 'hostname' (knife est l'outil de ligne de commande pour chef) pour exécuter le hostname commande pour tous les nœuds qui ont le rôle de serveur Web.

Solution 4 :

Je préfère shmux pour exécuter la même commande sur plusieurs hôtes en parallèle.

Solution 5 :

J'utilise des scripts expect pour automatiser les connexions (surtout parce que je dois passer par une boîte jumb et entrer dans un chroot et que beaucoup de mots de passe doivent être saisis) et j'ai fait quelques "ajustements" à la configuration de cssh.Donc, j'ai ceci " script principal" dans mon dossier bin qui, étant donné un "nom/alias de serveur", m'amène au serveur que je veux et où je veux.

Dans le ~/.clusterssh/config j'ai défini le paramètre "ssh" pour pointer vers mon script, aussi "ssh_args" doit être défini sur un argument inoffensif/faux, c'est parce que cssh a sa liste d'arguments par défaut, si elle est laissée vide en fait la liste par défaut finira par être au script.

Ainsi, le script (dans chaque fenêtre/terminal) recevra ces arguments et 1 des arguments donnés au cssh, le script qu'il récupère à partir d'un fichier pour le serveur donné les informations d'identification définies et les étapes qu'il doit faire pour arriver où Je veux, puis il appelle le "code attendu" avec toutes ces données.

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

donc je l'appelle généralement avec quelque chose comme ça

# cssh q4 q5 q6 q7

cela fonctionne aussi avec les "alias de cluster" ayant le cluster "qAll q4 q5 q6 q7" je peux appeler avec cssh qAll

J'espère que cela aidera quelqu'un d'autre.


Linux
  1. Chrony - Un client et un serveur NTP alternatifs pour les systèmes de type Unix

  2. Ssh - Script Shell pour se connecter à un serveur Ssh ?

  3. Délai de connexion pour le serveur Ssh ?

  4. Configurer l'authentification multifacteur pour SSH sur Ubuntu 20.04

  5. Gérer les paires de clés SSH pour les serveurs cloud avec python-novaclient

Comment créer un utilisateur SFTP pour une racine de document de serveur Web

Serveur SSH

Serveur de surveillance Graylog sur Ubuntu Linux pour la surveillance du serveur/des services

Gestion des licences cPanel

ClusterSSH(cssh) – Gérer plusieurs sessions SSH sous Linux

SSH :une clé_autorisée pour plusieurs comptes de service