DSH (Dancer's Shell) - Pokrenite komande na više Linux hostova


Administratori sistema su svjesni važnosti mogućnosti nadgledanja i administracije brojnih mašina u kratkom vremenu, po mogućnosti uz minimalno fizičko kretanje. Bilo da je u pitanju malo okruženje u oblaku ili veliki klaster servera, mogućnost centralnog upravljanja računarima je od suštinskog značaja.

Da to djelimično postignem, pokazat ću vam kako koristiti zgodni mali alat pod nazivom DSH (plesačeva školjka/distribuirana ljuska) koja omogućava korisniku da pokreće komande na više mašina.

Šta je DSH?

DSH je skraćenica od 'Distributed Shell' ili 'Dancer's Shell', što je besplatno dostupan alat na većini glavnih distribucija Linuxa, ali se može lako se gradi iz izvora ako ga vaša distribucija ne uključuje u svoje spremište paketa.

Instalirajte DSH (Distributed Shell) u Linux

Pretpostavit ćemo Debian/Ubuntu okruženje za opseg ovog vodiča. Ako koristite drugu distribuciju, zamijenite odgovarajuće komande za vaš upravitelj paketa.

Na distribucijama baziranim na Debianu, možete instalirati DSH koristeći sljedeću apt naredbu u terminalu.

sudo apt install dsh

Na distribucijama baziranim na RHEL-u, morate ga kompajlirati iz izvornih tar kuglica, ali prije nego što to učinite, obavezno prevedite i instalirajte biblioteku „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

Zatim kompajlirajte dsh i instalirajte.

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

Kako koristiti DSH u Linuxu

Glavna konfiguracijska datoteka “/etc/dsh/dsh.conf” (za Debian) i “/usr/local/etc/dsh.conf >” (za Red Hat) je prilično jednostavno, ali pošto je rsh nešifrirani protokol, koristit ćemo SSH kao udaljenu ljusku.

Pomoću uređivača teksta po vašem izboru pronađite ovaj red:

remoteshell =rsh

i promijenite ga u:

remoteshell =ssh

Postoje i druge opcije koje možete proći ovdje ako želite, a ima ih mnogo za pronaći na dsh man stranici. Za sada ćemo prihvatiti zadane postavke i pogledati sljedeću datoteku, /etc/dsh/machines.list (za Debian).

Za sisteme zasnovane na Red Hat trebate kreirati fajl pod nazivom “machines.list” u “/usr/local/etc/” imenik.

Sintaksa je ovdje prilično laka. Sve što treba da uradite je da unesete akreditive mašine (ime hosta, IP adresa ili FQDN) po jednu po redu.

Napomena: Kada istovremeno pristupate više od jedne mašine, trebalo bi da postavite SSH bez lozinke baziran na ključu na svim vašim mašinama. Ovo ne samo da omogućava lak pristup, već i sa sigurnosnog mudre, očvršćava i vašu mašinu.

Moj “/etc/dsh/machines.list” ili “/usr/local/etc/machines.list” fajl kaže:

172.16.25.125
172.16.25.126

Nakon što unesete vjerodajnice mašina kojima želite pristupiti, pokrenimo jednostavnu naredbu kao što je vrijeme neprekidnog rada za sve mašine.

dsh -aM -c uptime

Uzorak izlaza:

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

Dakle, šta radi naredba 'dsh'?

Prilično jednostavno. Prvo smo pokrenuli dsh i prenijeli mu opciju “-a”, koja kaže da pošaljemo naredbu “uptime” na “ >SVE” od mašina navedenih u “/etc/dsh/machines.list”.

Zatim smo naveli opciju “-M”, koja kaže da se vrati “ime mašine” (navedeno u “/etc/dsh/machines.list<“) zajedno sa izlazom naredbe uptime. (Vrlo korisno za sortiranje kada se izvodi naredba na brojnim mašinama).

Opcija “-c” je skraćenica za “komanda koja se izvršava” u ovom slučaju, “uptime”.

DSH se također može konfigurirati sa grupama mašina u datoteci “/etc/dsh/groups/”, gdje je datoteka sa listom mašina u istom formatu kao fajl “/etc/dsh/machines.list”. Kada pokrećete dsh na grupi, navedite naziv grupe iza opcije “-g”.

Za sisteme bazirane na Red Hatu trebate kreirati folder pod nazivom “groups” u direktoriju “/usr/local/etc/”. U tom direktoriju “groups” kreirate datoteku pod nazivom “cluster”.

Na primjer, pokrenite naredbu “w” na svim mašinama navedenim u datoteci grupe “cluster” “/etc/dsh/groups/cluster ” ili “/usr/local/etc/groups/cluster”.

dsh -M -g cluster -c w

DSH pruža mnogo više fleksibilnosti, a ovaj vodič samo zagrebe površinu. Osim izvršavanja naredbi, DSH se može koristiti za prijenos datoteka, instaliranje softvera, dodavanje ruta i još mnogo toga.

Za Sistemskog administratora koji je zadužen za veliku mrežu, to je neprocjenjivo.