Vyhledávání na webu

DSH (Dancer's Shell) – Spouštění příkazů na více hostitelích Linuxu


Správci systému si jsou dobře vědomi důležitosti schopnosti monitorovat a spravovat velké množství počítačů v krátkém čase, nejlépe s minimálním fyzickým pohybem. Ať už se jedná o malé cloudové prostředí nebo velký serverový cluster, schopnost centrálně spravovat počítače je zásadní.

Abych toho částečně dosáhl, ukážu vám, jak používat šikovný malý nástroj nazvaný DSH (taneční shell/distribuovaný shell), který umožňuje uživateli spouštět příkazy na více počítačích.

Co je DSH?

DSH je zkratka pro 'Distributed Shell' nebo 'Dancer's Shell', což je volně dostupný nástroj ve většině hlavních distribucí Linuxu, ale může být snadno sestavit ze zdroje, pokud jej vaše distribuce nezahrnuje do svého úložiště balíčků.

Nainstalujte DSH (Distributed Shell) v Linuxu

V rámci tohoto tutoriálu budeme předpokládat prostředí Debian/Ubuntu. Pokud používáte jinou distribuci, nahraďte prosím příslušné příkazy správce balíčků.

V distribucích založených na Debianu můžete nainstalovat DSH pomocí následujícího příkazu apt v terminálu.

sudo apt install dsh

V distribucích založených na RHEL jej musíte zkompilovat ze zdrojových balíčků tar, ale než tak učiníte, ujistěte se, že jste zkompilovali a nainstalovali knihovnu „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

Poté zkompilujte dsh a nainstalujte.

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 používat DSH v Linuxu

Hlavní konfigurační soubor „/etc/dsh/dsh.conf“ (pro Debian) a „/usr/local/etc/dsh.conf “ (pro Red Hat) je docela jednoduché, ale protože rsh je nešifrovaný protokol, budeme jako vzdálený shell používat SSH.

Pomocí textového editoru dle vašeho výběru najděte tento řádek:

remoteshell =rsh

a změňte to na:

remoteshell =ssh

Existují další možnosti, které zde můžete předat, pokud se rozhodnete, a na manuálové stránce dsh jich najdete spoustu. Prozatím přijmeme výchozí nastavení a podíváme se na další soubor /etc/dsh/machines.list (pro Debian).

Pro systémy založené na Red Hat je třeba vytvořit soubor s názvem „machines.list“ v „/usr/local/etc/“ adresář.

Syntaxe je zde velmi snadná. Jediné, co musíte udělat, je zadat přihlašovací údaje počítače (Název hostitele, IP adresa nebo FQDN), jedno na řádek.

Poznámka: Při současném přístupu k více než jednomu počítači by bylo vhodné nastavit SSH bez hesla na všech vašich počítačích. Nejen, že to zajišťuje snadný přístup, ale z hlediska bezpečnosti to také posiluje váš stroj.

Můj soubor „/etc/dsh/machines.list“ nebo „/usr/local/etc/machines.list“ říká:

172.16.25.125
172.16.25.126

Jakmile zadáte přihlašovací údaje počítačů, ke kterým chcete získat přístup, spusťte jednoduchý příkaz, jako je doba provozu na všech počítačích.

dsh -aM -c uptime

Ukázkový výstup:

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 tedy dělá příkaz „dsh“?

Docela jednoduché. Nejprve jsme spustili dsh a předali mu možnost „-a“, která říká, že se má odeslat příkaz „uptime“ na „VŠECHNY“ ze strojů uvedených v „/etc/dsh/machines.list“.

Dále jsme zadali možnost „-M“, která říká, že se má vrátit „název stroje“ (uvedeno v „/etc/dsh/machines.list<“) spolu s výstupem příkazu uptime. (Velmi užitečné pro řazení při spuštění příkazu na řadě strojů).

Možnost „-c“ znamená „příkaz k provedení“ v tomto případě „uptime“.

DSH lze také nakonfigurovat se skupinami počítačů v souboru „/etc/dsh/groups/“, kde je soubor se seznamem počítačů ve stejném formátu jako soubor „/etc/dsh/machines.list“. Při spuštění dsh ve skupině zadejte název skupiny za možnost „-g“.

Pro systémy založené na Red Hat je třeba vytvořit složku s názvem „groups“ v adresáři „/usr/local/etc/“. V tomto adresáři „groups“ vytvoříte soubor s názvem „cluster“.

Například spusťte příkaz „w“ na všech počítačích uvedených v souboru skupiny „cluster“ „/etc/dsh/groups/cluster “ nebo „/usr/local/etc/groups/cluster“.

dsh -M -g cluster -c w

DSH poskytuje mnohem větší flexibilitu a tento výukový program pouze poškrábe povrch. Kromě provádění příkazů lze DSH použít k přenosu souborů, instalaci softwaru, přidávání tras a mnoho dalšího.

Pro Správce systému pověřeného odpovědností za velkou síť je to neocenitelné.