Existe-t-il une alternative à Clusterssh, pssh, etc., pour gérer plusieurs serveurs basés sur ssh via une seule interface?
Une des faiblesses de Clusterssh est que mes serveurs utilisent l'authentification par clé, avec mot de passe pour se connecter, et il n'y a aucun moyen de se connecter aux serveurs à l'aide de la clé privée.
Existe-t-il une alternative disponible qui prend en charge l'authentification avec des clés privées?
linux
ssh
cluster
remote-access
Farhan
la source
la source
pssh
? Avez-vous besoin d'un programme parallèle ou simplement d'un programme pour gérer plusieurs serveurs SSH?pssh
l'-P
option de.Réponses:
Jetez un oeil sur Rundeck - http://rundeck.org/
la source
en tissu
Définissez d'abord vos tâches:
Puis exécutez via l'
fab
outil de ligne de commande:la source
Vous pouvez aller tout seul 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 de gérer, donc cela peut ê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 voudrez peut-être également installer, par exemple, le chef, avant de devenir beaucoup plus gros.
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'
(couteau est l'outil de ligne de commande pour chef) pour exécuter lahostname
commande pour tous les nœuds qui ont le rôle de serveur Web.la source
J'utilise des scripts expect pour automatiser les connexions (en particulier parce que je dois passer par une boîte de jumb et entrer un chroot et beaucoup de mots de passe doivent être entrés) et j'ai fait quelques "ajustements" à la configuration de cssh. Donc, j'ai ce "script principal" dans mon dossier bin qui, étant donné un "nom / alias de serveur", il m'emmène sur le serveur que je veux et où je veux.
Dans le fichier ~ / .clusterssh / config, j'ai défini le paramètre "ssh" pour pointer vers mon script, "ssh_args" doit également être défini sur un argument inoffensif / faux, car 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 CSS, le script qu'il récupère à partir d'un fichier pour le serveur donné, les informations d'identification définies et les étapes à suivre pour arriver où Je veux, puis il appelle le "code attendu" avec toutes ces données.
~ / .clusterssh / config
qs.sh
donc je l'appelle généralement avec quelque chose comme ça
ça marche 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 aide quelqu'un d'autre.
la source
Je préfère shmux pour exécuter la même commande sur de nombreux hôtes en parallèle.
la source
Vous devriez également regarder MCollective , qui est probablement le meilleur moyen et le plus flexible d'interagir avec plusieurs serveurs en temps réel. C'est un peu une entreprise de configurer correctement et peut être un peu exagéré pour vos besoins, mais cela bat certainement pssh, Clusterssh et toutes les autres solutions basées sur SSH. Et une fois que vous l'avez en place, il n'y a probablement rien que vous ne puissiez pas faire avec, à condition que vous connaissiez un peu Ruby.
la source
Je me suis posé la même question, car j'ai trouvé la dépendance de clusterssh envers X11 ou XQuartz sur Mac OS X ennuyeuse, et en plus les fenêtres de terminal ouvertes par clusterssh semblaient plus laides que celles de Terminal.app
C'est ainsi que je suis tombé sur un script basé sur tmux de Joerg Jaspert sur son blog: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html
la source
L'invite bash fonctionne pour des choses simples:
faire une liste de serveurs dans servers.txt, une ligne par serveur.
alors fais:
la source