als je een Linux systeembeheerder bent, is de kans groot dat je dagelijks meer dan één machine hebt waarvoor je verantwoordelijk bent. U kunt zelfs een bank van machines die u onderhoudt die vergelijkbaar zijn — een boerderij van webservers, bijvoorbeeld. Als je een behoefte hebt om hetzelfde commando in meerdere machines tegelijk te typen, kun je bij elk van deze met SSH inloggen en het serieel doen, of je kunt jezelf veel tijd en moeite besparen en een tool als ClusterSSH gebruiken.
ClusterSSH is een TK / Perl wrapper rond standaard Linux tools zoals XTerm en SSH. Als zodanig zal het draaien op zowat elk POSIX-compatibel OS waar de bibliotheken bestaan-Ik heb het uitgevoerd op Linux, Solaris en Mac OS X. Het vereist de Perl bibliotheken Tk (perl-tk
op Debian of Ubuntu) en X11::Protocol (libx11-protocol-perl
op Debian of Ubuntu), in aanvulling op xterm en OpenSSH.
installatie
ClusterSSH installeren op een Debian — of Ubuntu-systeem is triviaal-een eenvoudige sudo apt-get install clusterssh
installeert het en de afhankelijkheden ervan. Het is ook verpakt voor gebruik met Fedora, en het is installeerbaar via het ports systeem op FreeBSD. Er is ook een MacPorts-versie voor gebruik met Mac OS X, als u een Apple-machine gebruikt. Natuurlijk kan het ook vanuit de bron worden gecompileerd.
configuratie
ClusterSSH kan worden geconfigureerd via het globale configuratiebestand – /etc/clusters
, of via een bestand in de persoonlijke map van de gebruiker met de naam .csshrc
. Ik heb de neiging om de gebruiker-niveau configuratie als dat laat meerdere mensen op hetzelfde systeem in te stellen hun ClusterSSH client als ze kiezen. De configuratie is in beide gevallen eenvoudig, omdat het bestandsformaat hetzelfde is. ClusterSSH definieert een “cluster” als een groep machines die u wilt bedienen via één interface. Met dat in gedachten, u somt uw clusters aan de bovenkant van het bestand in een “clusters” blok, en dan beschrijft u elk cluster in een aparte sectie hieronder.
bijvoorbeeld, laten we zeggen dat ik twee clusters heb, elk bestaande uit twee machines. “Cluster1 “heeft de machines” Test1 “en” Test2 “erin, en” Cluster2 “heeft de machines” Test3 “en” Test4 ” erin. Het controlebestand ~.csshrc
(of /etc/clusters
) ziet er zo uit:
clusters = cluster1 cluster2
cluster1 = test1 test2
cluster2 = test3 test4
u kunt ook meta-clusters maken-clusters die verwijzen naar clusters. Als je een cluster genaamd “alles” wilde maken dat alle machines omvatte, kon je het op twee manieren definiëren. Ten eerste kon je gewoon een cluster maken dat alle machines bevatte, zoals het volgende::
clusters = cluster1 cluster2 all
cluster1 = test1 test2
cluster2 = test3 test4
all = test1 test2 test3 test4
mijn voorkeur gaat echter uit naar het gebruik van een meta-cluster dat de andere clusters omvat.:
clusters = cluster1 cluster2 all
cluster1 = test1 test2
cluster2 = test3 test4
all = cluster1 cluster2
als een van deze clusters ooit verandert, wordt de wijziging automatisch vastgelegd, zodat u de definitie van “alle” niet hoeft bij te werken. Dit bespaart u tijd en hoofdpijn als uw .csshrc-bestand wordt steeds groter.
het gebruik van ClusterSSH
het gebruik van ClusterSSH is vergelijkbaar met het zelf opstarten van SSH. Gewoon cssh -l <username> <clustername>
draaien zal ClusterSSH starten en u aanmelden als de gewenste gebruiker op dat cluster. In de figuur hieronder, kunt u zien Ik heb aangemeld bij “cluster1” als mezelf. Het kleine venster met het label “CSSH” is het Cluster SSH console venster. Alles wat ik typ in dat kleine venster wordt Echo naar alle machines in de cluster — in dit geval, machines “test1” en “test2”. In een snuifje, kunt u ook inloggen op machines die niet in uw .csshrc-bestand, simpelweg door cssh -l <username> <machinename1> <machinename2> <machinename3>
uit te voeren.
als ik iets naar een van de terminals wil sturen, kan ik gewoon van focus wisselen door op de gewenste XTerm te klikken, en gewoon in dat venster typen zoals gewoonlijk. ClusterSSH heeft een paar menu-items die echt helpen bij het omgaan met een mix van machines. Volgens de onderstaande figuur, in de” Hosts ” menu van de ClusterSSH console zijn er verschillende opties die van pas komen.
“Retile Windows” doet precies dat als u iets handmatig hebt aangepast of verplaatst. “Host(s) of Cluster(s) toevoegen” is geweldig als u een andere set machines of een ander cluster wilt toevoegen aan de lopende ClusterSSH sessie. Tot slot zie je elke host onderaan het “Hosts” menu. Door de vakjes naast elke hostnaam aan te vinken of uit te schakelen, kun je selecteren naar welke hosts de ClusterSSH console commando ‘ s zal echo. Dit is handig als je een of twee hosts wilt uitsluiten voor een eenmalige of specifieke reden. De laatste menu optie die leuk is om te hebben is onder het” verzenden “menu, genaamd”Hostname”. Dit echoot gewoon de hostnaam van elke machine naar de commandoregel, wat handig kan zijn als je iets host-specifiek aan het maken bent over je cluster.
voorbehouden met ClusterSSH
zoals veel UNIX gereedschappen, heeft ClusterSSH de potentie om verschrikkelijk verkeerd te gaan als je niet erg voorzichtig bent met het gebruik ervan. Ik heb gezien ClusterSSH fouten nemen uit een hele laag van webservers gewoon door het propageren van een typefout in een Apache configuratie. Het hebben van toegang tot meerdere machines tegelijk, mogelijk als een bevoorrechte gebruiker, betekent fouten komen tegen een grote prijs. Pas goed op, en controleer nog eens wat je doet voordat je op de Enter-toets drukt.
conclusie
ClusterSSH is geen vervanging voor het hebben van een configuratiebeheersysteem of een van de andere best practices bij het beheren van een aantal machines. Echter, als je nodig hebt om iets te doen in een snuifje buiten uw gebruikelijke toolset of proces, of als je doet prototype werk, ClusterSSH is onmisbaar. Het kan veel tijd besparen bij het doen van taken die moeten worden gedaan op meer dan één machine, maar zoals elk elektrisch gereedschap, kan het veel schade veroorzaken als het lukraak wordt gebruikt.