Wyszukiwanie w witrynie

DSH (Dancer's Shell) - Uruchamiaj polecenia na wielu hostach z systemem Linux


Administratorzy systemów doskonale zdają sobie sprawę ze znaczenia możliwości monitorowania wielu maszyn i administrowania nimi w krótkim czasie, najlepiej przy minimalnym ruchu fizycznym. Niezależnie od tego, czy jest to małe środowisko chmurowe, czy duży klaster serwerów, możliwość centralnego zarządzania komputerami jest niezbędna.

Aby częściowo to osiągnąć, pokażę Ci, jak używać sprytnego, małego narzędzia o nazwie DSH (powłoka tancerza/powłoka rozproszona), które pozwala użytkownikowi uruchamiać polecenia na wielu komputerach.

Co to jest DSH?

DSH to skrót od „Distributed Shell” lub „Dancer's Shell”, które jest narzędziem ogólnodostępnym w większości głównych dystrybucji Linuksa, ale można je łatwo zbudować ze źródła, jeśli Twoja dystrybucja nie zawiera go w repozytorium pakietów.

Zainstaluj DSH (Distributed Shell) w systemie Linux

Na potrzeby tego samouczka przyjmiemy środowisko Debian/Ubuntu. Jeśli używasz innej dystrybucji, zastąp odpowiednimi poleceniami menedżera pakietów.

W dystrybucjach opartych na Debianie możesz zainstalować DSH, używając następującego polecenia apt w terminalu.

sudo apt install dsh

W dystrybucjach opartych na RHEL musisz skompilować go ze źródłowych plików tar, ale zanim to zrobisz, pamiętaj o skompilowaniu i zainstalowaniu biblioteki „libdshconfig”.

wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
tar xfz libdshconfig*.tar.gz 
cd libdshconfig-*
./configure ; make
sudo make install

Następnie skompiluj dsh i zainstaluj.

wget https://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz
tar xfz dsh-0.22.0.tar.gz
cd dsh-*
./configure ; make 
sudo make install

Jak korzystać z DSH w systemie Linux

Główny plik konfiguracyjny „/etc/dsh/dsh.conf” (dla Debian) i „/usr/local/etc/dsh.conf >” (dla Red Hat) jest całkiem proste, ale ponieważ rsh jest protokołem niezaszyfrowanym, będziemy używać SSH jako zdalnej powłoki.

Korzystając z wybranego edytora tekstu, znajdź następujący wiersz:

remoteshell =rsh

i zmień go na:

remoteshell =ssh

Istnieją inne opcje, które możesz tutaj podać, jeśli chcesz, a jest ich wiele do znalezienia na stronie podręcznika dsh. Na razie zaakceptujemy ustawienia domyślne i przyjrzymy się następnemu plikowi, /etc/dsh/machines.list (dla Debian).

W przypadku systemów opartych na Red Hat musisz utworzyć plik o nazwie „machines.list” w katalogu „/usr/local/etc/” informator.

Składnia tutaj jest dość prosta. Wszystko, co musisz zrobić, to wprowadzić dane uwierzytelniające komputera (nazwa hosta, adres IP lub FQDN) po jednym w każdym wierszu.

Uwaga: w przypadku jednoczesnego dostępu do więcej niż jednego komputera wskazane jest skonfigurowanie na wszystkich komputerach protokołu SSH opartego na kluczach i pozbawionego hasła. Zapewnia to nie tylko łatwość dostępu, ale także zwiększa bezpieczeństwo, a także wzmacnia maszynę.

Mój plik „/etc/dsh/machines.list” lub „/usr/local/etc/machines.list” mówi:

172.16.25.125
172.16.25.126

Po wprowadzeniu danych uwierzytelniających komputerów, do których chcesz uzyskać dostęp, uruchommy proste polecenie, takie jak uptime, na wszystkich komputerach.

dsh -aM -c uptime

Przykładowy wynik:

172.16.25.125: 05:11:58 up 40 days, 51 min, 0 users, load average: 0.00, 0.01, 0.05
172.16.25.126: 05:11:47 up 13 days, 38 min, 0 users, load average: 0.00, 0.01, 0.05

Co więc robi polecenie „dsh”?

Dość proste. Najpierw uruchomiliśmy dsh i przekazaliśmy mu opcję „-a”, która mówi, aby wysłać polecenie „uptime” do „WSZYSTKIE” z maszyn wymienionych w „/etc/dsh/machines.list”.

Następnie określiliśmy opcję „-M”, która nakazuje zwrócić „nazwę maszyny” (określoną w „/etc/dsh/machines.list<”) wraz z wynikami polecenia uptime. (Bardzo przydatne do sortowania podczas uruchamiania polecenia na wielu komputerach).

Opcja „-c” oznacza „polecenie do wykonania”, w tym przypadku „czas pracy”.

DSH można także skonfigurować z grupami komputerów w pliku „/etc/dsh/groups/”, gdzie znajduje się plik z listą komputerów w tym samym formacie co plik „/etc/dsh/machines.list”. Kiedy uruchamiasz dsh w grupie, po opcji „-g” podaj nazwę grupy.

W przypadku systemów opartych na Red Hat musisz utworzyć folder o nazwie „groups” w katalogu „/usr/local/etc/”. W tym katalogu „groups” tworzysz plik o nazwie „cluster”.

Na przykład uruchom polecenie „w” na wszystkich komputerach wymienionych w pliku grupy „cluster” „/etc/dsh/groups/cluster ” lub „/usr/local/etc/groups/cluster”.

dsh -M -g cluster -c w

DSH zapewnia znacznie większą elastyczność, a ten samouczek to tylko zarys. Oprócz wykonywania poleceń, DSH może służyć do przesyłania plików, instalowania oprogramowania, dodawania tras i wielu innych.

Dla administratora systemów, któremu powierzono odpowiedzialność za dużą sieć, jest to bezcenne.