Soluzione 1:
-
Tessuto
Definisci prima le tue attività:
from fabric.api import * @parallel @hosts('192.168.3.118', '192.168.6.142') def hostname(): run('hostname')
Quindi eseguire tramite
fab
strumento da riga di comando:$ 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.
- Gestore connessione Gnome
- Gestore PAC
Soluzione 2:
Dai un'occhiata a Rundeck - http://rundeck.org/
Soluzione 3:
Puoi andare fino in fondo e installare un sistema di gestione della configurazione come Puppet o Chef. Non hai menzionato quanti nodi stai effettivamente cercando di gestire, quindi questo potrebbe essere eccessivo, ma, certamente, puoi controllare centralmente molte macchine in questo modo. Se sei piccolo in questo momento, ma stai crescendo, potresti anche voler creare, ad esempio, Chef, prima di diventare molto più grande.
Se hai bisogno di eseguire comandi ad hoc su un insieme specifico di nodi, puoi fare qualcosa come knife ssh 'roles:webserver' 'hostname'
(coltello è lo strumento da riga di comando per chef) per eseguire hostname
comando per tutti i nodi che hanno il ruolo di server web.
Soluzione 4:
Preferisco shmux per eseguire lo stesso comando su molti host in parallelo.
Soluzione 5:
Uso gli script di attesa per automatizzare gli accessi (soprattutto perché devo passare attraverso un jumb box e inserire un chroot e devono essere inserite molte password) e ho apportato alcune "modifiche" alla configurazione di cssh. Quindi, ho questo " main script" nella mia cartella bin che, dato un "nome server/alias", mi porta nel server che voglio e dove voglio.
Nel ~/.clusterssh/config ho impostato il parametro "ssh" in modo che punti al mio script, anche "ssh_args" deve essere impostato su un argomento innocuo/falso, perché cssh ha il suo elenco di argomenti predefinito, se lasciato vuoto in realtà l'elenco predefinito finirà per essere quello dello script.
Quindi lo script (in ogni finestra/terminale) riceverà questo args e 1 degli args dati al cssh, lo script recupera da un file per il server dato le credenziali impostate e i passi che deve fare per arrivare dove Voglio, quindi chiama il "codice atteso" con tutti quei dati.
~/.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
quindi di solito lo chiamo con qualcosa del genere
# cssh q4 q5 q6 q7
funziona anche con "cluster alias"con il cluster"qAll q4 q5 q6 q7"posso chiamare con cssh qAll
Spera che aiuti qualcun altro.