DSH (Distributed Shell) izmantošana, lai palaistu Linux komandas vairākās mašīnās


Sistēmas administratori pārāk labi zina, cik svarīgi ir īsā laikā uzraudzīt un pārvaldīt daudzas mašīnas un, vēlams, ar pēc iespējas mazāku skriešanu. Neatkarīgi no tā, vai tā ir maza mākoņu vide vai milzīga serveru kopa, spēja centralizēti pārvaldīt datorus ir būtiska.

Lai to daļēji paveiktu, es jums parādīšu, kā izmantot izveicīgu mazu rīku ar nosaukumu DSH, kas ļauj lietotājam vadīt komandas vairākās mašīnās.

Lasiet arī: Pssh - izpildiet komandas vairākos attālos Linux serveros

Kas ir DSH?

DSH ir saīsinājums no “Distributed Shell” vai “Dancer’s Shell”, tas ir brīvi pieejams lielākajā daļā galveno Linux izplatījumu, taču to var viegli izveidot no avota, ja izplatītājs to nepiedāvā pakotņu krātuvē. Avotu var iegūt vietnē.

  1. http://www.netfort.gr.jp/~dancer/software/dsh.html.en

Linux instalējiet DSH (Distributed Shell)

Šīs apmācības darbības jomai mēs pieņemam Debian/Ubuntu vidi. Ja izmantojat citu izplatīšanu, lūdzu, aizstājiet pakotņu pārvaldniekam atbilstošās komandas.

Vispirms instalēsim pakotni, izmantojot apt:

$ sudo apt-get install dsh

Šī metode ir paredzēta tiem, kuri neizmanto Debian un vēlas to kompilēt no darvas avotiem. Vispirms jums jāapkopo “libdshconfig” un jāinstalē.

# 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
# make install

Tad sastādiet dsh un instalējiet.

# wget http://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 
# make install

Galvenais konfigurācijas fails “/etc/dsh/dsh.conf” (priekš Debian) un “/usr/local/etc/dsh.conf” (priekš Red Hat) ir diezgan vienkāršs, taču, tā kā rsh ir nešifrēts protokols, mēs gatavojas izmantot SSH kā attālo apvalku. Izmantojot izvēlēto teksta redaktoru, atrodiet šo rindu:

remoteshell =rsh

Un nomainiet to uz:

remoteshell =ssh

Šeit ir arī citas iespējas, kuras varat nodot šeit, ja jūs to izvēlaties, un dsh man lapā ir daudz no tām. Pagaidām mēs pieņemsim noklusējumus un apskatīsim nākamo failu /etc/dsh/machines.list (Debian).

Sistēmās, kuru pamatā ir Red Hat, direktorijā “/ usr/local/etc /” jāizveido fails ar nosaukumu “machines.list”.

Sintakse šeit ir diezgan vienkārša. Vienīgais, kas jādara, ir katrā rindā jāievada mašīnas akreditācijas dati (resursdatora nosaukums, IP adrese vai FQDN).

Piezīme. Piekļūstot vairākām mašīnām vienlaicīgi, visās jūsu mašīnās ir jāizveido SSH ar atslēgām, kurās nav paroles. Tas ne tikai nodrošina ērtu piekļuvi, bet arī drošība, bet tas arī nocietina jūsu mašīnu.

Manā failā “/etc/dsh/machines.list” vai “/usr/local/etc/machines.list” ir teikts:

172.16.25.125
172.16.25.126

Kad esat ievadījis to mašīnu akreditācijas datus, kurām vēlaties piekļūt, izpildīsim vienkāršu komandu, piemēram,\"uptime \" visām mašīnām.

$ dsh –aM –c uptime
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

Ko tad šī komanda darīja?

Diezgan vienkārši. Pirmkārt, mēs palaidām dsh un tam nodevām opciju “–a”, kurā teikts, ka jānosūta komanda “uptime” uz “ALL” visām mašīnām, kas uzskaitītas “/etc/dsh/machines.list”.

Pēc tam mēs norādījām opciju “–M”, kas saka, ka jāatgriež “mašīnas nosaukums” (norādīts “/etc/dsh/machines.list”) kopā ar komandas uptime izvadi. (Ļoti noderīgs šķirošanai, izpildot komandu vairākās mašīnās.)

Opcija “–c” nozīmē “izpildāmā komanda” šajā gadījumā “uptime”.

DSH var konfigurēt arī ar mašīnu grupām failā “/ etc/dsh/groups /”, kur ir fails ar mašīnu sarakstu tādā pašā formātā kā failā “/etc/dsh/machines.list”. Palaižot dsh grupā, pēc opcijas “-g” norādiet grupas nosaukumu.

Sistēmās, kuru pamatā ir Red Hat, direktorijā “/ usr/local/etc /” jāizveido mape ar nosaukumu “grupas”. Šajā “grupu” direktorijā izveidojat failu ar nosaukumu “kopa”.

Piemēram, palaidiet komandu “w” visās mašīnās, kas uzskaitītas “klastera” grupas failā “/ etc/dsh/groups/cluster” vai “/ usr/local/etc/groups/cluster”.

$ dsh –M –g cluster –c w

DSH nodrošina daudz lielāku elastību, un šī apmācība tikai saskrāpē virsmu. Papildus komandu izpildei DSH var izmantot, lai pārsūtītu failus, instalētu programmatūru, pievienotu maršrutus un daudz ko citu.

Sistēmas administratoram, kura uzdevums ir atbildīgs par lielu tīklu, tas ir nenovērtējami.