Zarządzanie wieloma serwerami linuksowymi za pomocą klastrów

jeśli jesteś administratorem systemu Linux, prawdopodobnie masz więcej niż jedną maszynę, za którą jesteś odpowiedzialny na co dzień. Możesz nawet mieć bank maszyn, które utrzymujesz, które są podobne-na przykład farmę serwerów internetowych. Jeśli masz potrzebę wpisania tego samego polecenia na kilku maszynach jednocześnie, możesz zalogować się do każdej z nich za pomocą SSH i zrobić to szeregowo, lub możesz zaoszczędzić sobie dużo czasu i wysiłku i użyć narzędzia takiego jak ClusterSSH.

ClusterSSH jest opakowaniem Tk / Perla wokół standardowych narzędzi Linuksowych, takich jak XTerm i SSH. Jako taki, będzie działać na prawie każdym systemie operacyjnym zgodnym z POSIX, w którym istnieją biblioteki-uruchomiłem go na Linuksie, Solarisie i Mac OS X. wymaga bibliotek Perla Tk (perl-tk na Debianie lub Ubuntu) i X11::Protocol (libx11-protocol-perl na Debianie lub Ubuntu), oprócz xterm i OpenSSH.

instalacja

instalacja klastrów na systemie Debian lub Ubuntu jest banalna — prosty sudo apt-get install clusterssh zainstaluje go i jego zależności. Jest również pakowany do użytku z Fedorą i można go zainstalować za pośrednictwem systemu portów na FreeBSD. Istnieje również wersja MacPorts do użytku z Mac OS X, Jeśli używasz komputera Apple. Oczywiście można go również skompilować ze źródła.

Konfiguracja

klastry można skonfigurować za pomocą globalnego pliku konfiguracyjnego — /etc/clusters lub za pomocą pliku w katalogu domowym użytkownika o nazwie .csshrc. Mam tendencję do faworyzowania konfiguracji na poziomie użytkownika, ponieważ pozwala wielu osobom na tym samym systemie skonfigurować swojego klienta ClusterSSH zgodnie z wyborem. W obu przypadkach konfiguracja jest prosta, ponieważ format pliku jest taki sam. ClusterSSH definiuje „klaster” jako grupę maszyn, którą chcesz kontrolować za pomocą jednego interfejsu. Mając to na uwadze, wyliczasz swoje klastry na górze pliku w bloku „klastry”, a następnie opisujesz każdy klaster w oddzielnej sekcji poniżej.

na przykład, powiedzmy, że mam dwa klastry, każdy składający się z dwóch maszyn. „Cluster1” ma w sobie maszyny „Test1” i „Test2”, a „Cluster2” ma w sobie maszyny „Test3” i „Test4”. Plik Kontrolny ~.csshrc (lub /etc/clusters) wyglądałby tak:

clusters = cluster1 cluster2

cluster1 = test1 test2
cluster2 = test3 test4

Możesz również utworzyć meta-clusters — klastry, które odnoszą się do klastrów. Jeśli chcesz stworzyć klaster o nazwie „wszystko”, który obejmowałby wszystkie maszyny, możesz zdefiniować go na dwa sposoby. Po pierwsze, możesz po prostu utworzyć klaster, w którym znajdowały się wszystkie maszyny, jak poniżej:

clusters = cluster1 cluster2 all

cluster1 = test1 test2
cluster2 = test3 test4
all = test1 test2 test3 test4

jednak moją preferowaną metodą jest użycie meta-klastra, który obejmuje inne klastry:

clusters = cluster1 cluster2 all

cluster1 = test1 test2
cluster2 = test3 test4
all = cluster1 cluster2

poprzez wywołanie klastra ” all „jako zawierającego cluster1 i cluster2, jeśli którykolwiek z tych klastrów kiedykolwiek się zmieni, zmiana jest automatycznie rejestrowana, więc nie musisz aktualizować definicji” all”. Pozwoli to zaoszczędzić czas i ból głowy, jeśli twój .plik csshrc zawsze rośnie w rozmiarze.

używanie ClusterSSH

używanie ClusterSSH jest podobne do uruchamiania samego SSH. Po prostu uruchomienie cssh -l <username> <clustername> uruchomi ClusterSSH i zaloguje Cię jako żądanego użytkownika w tym klastrze. Na poniższym rysunku widać, że zalogowałem się do” cluster1 ” jako ja. Małe okno o nazwie „CSSH” jest oknem konsoli SSH klastra. Wszystko, co wpiszę w to małe okienko, odbija się echem na wszystkich maszynach w klastrze – w tym przypadku maszynach ” test1 „i”test2”. W szczypcie, można również zalogować się do maszyn, które nie są w Twoim .plik csshrc, po prostu uruchamiając cssh -l <username> <machinename1> <machinename2> <machinename3>.

jeśli chcę wysłać coś do jednego z terminali, mogę po prostu przełączyć fokus, klikając żądany XTerm i po prostu wpisać w tym oknie, tak jak zwykle. ClusterSSH ma kilka pozycji menu, które naprawdę pomagają w kontaktach z mieszanką maszyn. Jak na poniższym rysunku, w menu „Hosts” konsoli ClusterSSH jest kilka opcji, które się przydają.

„Retile Windows” robi to po prostu, jeśli ręcznie zmieniłeś rozmiar lub przeniosłeś coś. „Dodaj hosta(y) lub klastra(Y)” jest świetny, jeśli chcesz dodać inny zestaw maszyn lub inny klaster do uruchomionej sesji ClusterSSH. Na koniec zobaczysz listę wszystkich hostów na dole menu „hosty”. Zaznaczając lub odznaczając pola obok każdej nazwy hosta, możesz wybrać, do których hostów konsola klastrów będzie echo poleceń. Jest to przydatne, jeśli chcesz wykluczyć hosta lub dwa z jednorazowego lub konkretnego powodu. Ostatnia opcja menu, która jest przyjemna, znajduje się w menu” Wyślij”, o nazwie”Nazwa hosta”. To po prostu powtarza nazwę hosta każdej Maszyny do wiersza poleceń, co może być przydatne, jeśli konstruujesz coś specyficznego dla hosta w klastrze.

zastrzeżenia z ClusterSSH

podobnie jak wiele narzędzi uniksowych, ClusterSSH ma potencjał, aby pójść strasznie źle, jeśli nie jesteś zbyt ostrożny z jego użyciem. Widziałem błędy klastrów usuwające całą warstwę serwerów internetowych po prostu propagując literówkę w konfiguracji Apache. Posiadanie dostępu do wielu maszyn jednocześnie, być może jako uprzywilejowany użytkownik, oznacza, że błędy są bardzo kosztowne. Uważaj i dwukrotnie sprawdź, co robisz, zanim naciśniesz klawisz Enter.

wniosek

Klastrysh nie zastępuje systemu zarządzania konfiguracją ani innych najlepszych praktyk podczas zarządzania wieloma maszynami. Jeśli jednak musisz zrobić coś w szczypcie poza zwykłym zestawem narzędzi lub procesem, lub jeśli wykonujesz prace prototypowe, klastry są niezbędne. Może zaoszczędzić dużo czasu podczas wykonywania zadań, które należy wykonać na więcej niż jednej maszynie, ale jak każde elektronarzędzie, może spowodować wiele uszkodzeń, jeśli zostanie użyte przypadkowo.

You might also like

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.