Je me rends compte que vous ne voulez probablement que quelque chose de simple, mais il existe des dizaines de façons de procéder. Mais d'abord, nous voulons être en mesure de contrôler tous les ordinateurs en même temps.
Cela peut sembler étrange, mais cela vous fera gagner du temps par la suite lorsque vous voudrez envoyer un arrêt, un redémarrage ou une mise à niveau à tous les ordinateurs.
clusterssh
Installons clusterssh
et lancer une commande pour se connecter à tous nos serveurs en même temps (ce n'est peut-être pas viable pour 200 en même temps - je n'ai pas 200 ordinateurs pour le tester !)
sudo apt-get install clusterssh
cssh user@first_computer:port user@second_computer:port ...
Cela donnera naissance à de petites fenêtres de sortie pour chaque connexion (pourquoi je dis 200, c'est peut-être exagéré) et à un dialogue d'entrée global. De là, vous pouvez envoyer la même commande à tous vos serveurs.
Si vous voulez le faire à partir de la ligne de commande, et que cela peut prendre en charge 200 connexions, vous pouvez consulter la commande -a
pour cssh
. Vous pouvez lancer à chaque serveur une commande (ou une chaîne de commandes). Il se connectera, exécutera et fermera la connexion.
cssh -a 'cd directory; ls' user@first_computer:port user@second_computer:port
Vous pouvez simplifier vos connexions en utilisant clusterssh
La puissante configuration de l'entreprise. Ouvrir man cssh
et se rendre à la FILES
section. Elle explique comment vous pouvez créer un /etc/clusters
pour vous permettre de créer rapidement des groupes (appelés balises) comme ceci :
clusters = <tag1> <tag2> <tag3>
<tag1> = host1 host2 host3
<tag2> = user@host4 user@host5 host6
<tag3> = <tag1> <tag2>
Alors vous pouvez le faire :
cssh -T 'tag2' -a 'cd directory; ls'
Utiliser un référentiel central
Je ne parle pas d'un dépôt de deb (mais c'est possible aussi, je suppose) mais plutôt de quelque chose comme git
o brz
. Il peut s'agir de quelque chose d'aussi simple qu'un serveur web ou un partage réseau. Si la bande passante du réseau présente des goulots d'étranglement à certains endroits, quelque chose comme un serveur de torrents pourrait même être la meilleure solution (c'est ainsi que Facebook met à jour tous ses nœuds).
Dites à votre réseau de télécharger les fichiers
A partir de là, il faut juste relier les points. En utilisant cssh
vous diriez à tous vos ordinateurs d'aller chercher le fichier et de faire ce qu'il faut avec.
Je vous suggère de commencer petit. Obtenez le fichier partagé, puis essayez un simple cluster de quelques ordinateurs et voyez comment cela se passe. Etendez-le ensuite.
Je suggère que même une fois que vous avez terminé, vous gardiez une grappe de quelques ordinateurs pour faire des tests avant de pousser les choses vers le groupe principal.