hvis du er systemadministrator, er chancerne for, at du har mere end en maskine, som du er ansvarlig for dagligt. Du kan endda have en bank af maskiner, som du vedligeholder, der ligner hinanden — f.eks. Hvis du har behov for at skrive den samme kommando i flere maskiner på en gang, kan du logge ind på hver enkelt med SSH og gøre det serielt, eller du kan spare dig selv meget tid og kræfter og bruge et værktøj som Clustersh.
Clustersh er en tk/Perl-indpakning omkring standardværktøjer som f.eks. Det kræver Perl-bibliotekerne Tk (perl-tk
på Debian eller Ubuntu) og 11::Protocol (libx11-protocol-perl
på Debian eller Ubuntu), ud over kterm og OpenSSH.
Installation
installation af Clustersh på et Debian — eller Ubuntu-system er trivielt-en simpel sudo apt-get install clusterssh
vil installere det og dets afhængigheder. Det er også pakket til brug med Fedora, og det kan installeres via ports-systemet på FreeBSD. Der er også en MacPorts-version til brug med Mac OS, Hvis du bruger en Apple-maskine. Det kan selvfølgelig også kompileres fra kilden.
konfiguration
Clustersh kan konfigureres enten via sin globale konfigurationsfil — /etc/clusters
eller via en fil i brugerens hjemmemappe kaldet .csshrc
. Jeg har en tendens til at favorisere konfigurationen på brugerniveau, da det lader flere personer på samme system opsætte deres Clustersh-klient, som de vælger. Konfiguration er ligetil i begge tilfælde, da filformatet er det samme. ClusterSSH definerer en” klynge ” som en gruppe af maskiner, som du gerne vil styre via en grænseflade. Med det i tankerne opregner du dine klynger øverst i filen i en “klynger” – blok, og derefter beskriver du hver klynge i et separat afsnit nedenfor.
lad os for eksempel sige, at jeg har to klynger, der hver består af to maskiner. “Cluster1 “har maskinerne” Test1 “og” Test2 “i sig, og” Cluster2 “har maskinerne” Test3 “og” Test4 ” i sig. ~.csshrc
(eller /etc/clusters
) kontrolfilen ville se sådan ud:
clusters = cluster1 cluster2
cluster1 = test1 test2
cluster2 = test3 test4
du kan også lave metaklynger-klynger, der henviser til klynger. Hvis du ønskede at lave en klynge kaldet “alle”, der omfattede alle maskinerne, kunne du definere det på to måder. For det første kan du blot oprette en klynge, der holdt alle maskinerne, som følgende:
clusters = cluster1 cluster2 all
cluster1 = test1 test2
cluster2 = test3 test4
alle = test1 test2 test3 test4
men min foretrukne metode er at bruge en meta-klynge, der omfatter de andre klynger:
clusters = cluster1 cluster2 all
cluster1 = test1 test2
cluster2 = test3 test4
alle = cluster1 cluster2
ved at kalde” alle “klyngen som indeholdende cluster1 og cluster2, hvis en af disse klynger nogensinde ændres, bliver ændringen automatisk fanget, så du ikke behøver at opdatere” alle ” definitionen. Dette vil spare dig tid og hovedpine, hvis din .csshrc-fil vokser nogensinde i størrelse.
brug af Clustersh
brug af Clustersh svarer til at starte SSH af sig selv. Hvis du blot kører cssh -l <username> <clustername>
, starter Clustersh og logger dig ind som den ønskede bruger på den klynge. I nedenstående figur kan du se, at jeg har logget ind på “cluster1” som mig selv. Det lille vindue mærket “CSSH” er Cluster SSH-konsolvinduet. Alt, hvad jeg skriver i det lille vindue, bliver gentaget til alle maskinerne i klyngen — i dette tilfælde maskiner “test1” og “test2”. I en knivspids, du kan også logge ind på maskiner, der ikke er i din .csshrc fil, blot ved at køre cssh -l <username> <machinename1> <machinename2> <machinename3>
.
hvis jeg vil sende noget til en af terminalerne, kan jeg blot skifte fokus ved at klikke på det ønskede Kstm, og bare skrive i det vindue, som jeg normalt ville. ClusterSSH har et par menupunkter, der virkelig hjælper, når man beskæftiger sig med en blanding af maskiner. I henhold til nedenstående figur er der i menuen “værter” i Clustersh-konsollen flere muligheder, der er nyttige.
“Retle vinduer” gør netop det, hvis du manuelt har ændret størrelse eller flyttet noget. “Tilføj vært (er) eller klynge(er)” er fantastisk, hvis du vil tilføje et andet sæt maskiner eller en anden klynge til den kørende Clustersh-session. Endelig vil du se hver vært opført nederst i menuen” værter”. Ved at markere eller fjerne markeringen i afkrydsningsfelterne ud for hvert værtsnavn kan du vælge, hvilke værter ClusterSSH-konsollen vil ekko kommandoer til. Dette er praktisk, hvis du vil udelukke en vært eller to af en engangs eller særlig grund. Den endelige menupunkt, der er rart at have, er under menuen “Send”, kaldet “værtsnavn”. Dette gentager simpelthen hver maskines værtsnavn til kommandolinjen, hvilket kan være praktisk, hvis du konstruerer noget værtsspecifikt på tværs af din klynge.
advarsler med Clustersh
som mange unikke værktøjer har ClusterSSH potentialet til at gå forfærdeligt galt, hvis du ikke er meget forsigtig med brugen. Jeg har set ClusterSSH-fejl tage en hel del servere ud ved blot at udbrede en skrivefejl i en Apache-konfiguration. At have adgang til flere maskiner på en gang, muligvis som en privilegeret bruger, betyder, at fejl kommer til en stor pris. Pas på, og dobbelttjekke, hvad du laver, før du punch at indtaste nøglen.
konklusion
ClusterSSH er ikke en erstatning for at have et konfigurationsstyringssystem eller nogen af de andre bedste fremgangsmåder ved styring af et antal maskiner. Men hvis du har brug for at gøre noget i en klemme uden for dit sædvanlige værktøjssæt eller proces, eller hvis du laver prototypearbejde, er Clustersh uundværlig. Det kan spare meget tid, når du udfører opgaver, der skal udføres på mere end en maskine, men som ethvert elværktøj kan det forårsage meget skade, hvis det bruges tilfældigt.