Solution 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.
- Gnome de connexion Gnome
- 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.