ഒന്നിലധികം മെഷീനുകളിൽ ലിനക്സ് കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് DSH (ഡിസ്ട്രിബ്യൂട്ടഡ് ഷെൽ) ഉപയോഗിക്കുന്നു


ചുരുങ്ങിയ സമയത്തിനുള്ളിൽ നിരവധി മെഷീനുകൾ നിരീക്ഷിക്കാനും നിയന്ത്രിക്കാനും കഴിയുന്നതിന്റെ പ്രാധാന്യം സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് നന്നായി അറിയാം, കൂടാതെ കഴിയുന്നത്ര കുറച്ച് ഓടിച്ചുകൊണ്ട്. അത് ഒരു ചെറിയ ക്ലൗഡ് പരിതസ്ഥിതിയായാലും അല്ലെങ്കിൽ ഒരു വലിയ സെർവർ ക്ലസ്റ്ററായാലും, കമ്പ്യൂട്ടറുകളെ കേന്ദ്രീകൃതമായി കൈകാര്യം ചെയ്യാനുള്ള കഴിവ് അത്യന്താപേക്ഷിതമാണ്.

ഇത് ഭാഗികമായി നിറവേറ്റുന്നതിന്, ഒന്നിലധികം മെഷീനുകളിൽ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്ന DSH എന്ന നിഫ്റ്റി ചെറിയ ഉപകരണം എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞാൻ നിങ്ങളെ കാണിക്കാൻ പോകുന്നു.

ഇതും വായിക്കുക: Pssh - ഒന്നിലധികം റിമോട്ട് ലിനക്സ് സെർവറുകളിൽ കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യുക

എന്താണ് DSH?

DSH എന്നത് \Distributed Shell അല്ലെങ്കിൽ \Dancer's Shell എന്നതിന്റെ ചുരുക്കമാണ്, ഇത് Linux-ന്റെ മിക്ക പ്രധാന വിതരണങ്ങളിലും സൗജന്യമായി ലഭ്യമാണ്, എന്നാൽ നിങ്ങളുടെ വിതരണം അതിന്റെ പാക്കേജ് റിപ്പോസിറ്ററിയിൽ നൽകുന്നില്ലെങ്കിൽ ഉറവിടത്തിൽ നിന്ന് എളുപ്പത്തിൽ നിർമ്മിക്കാനാകും. എന്നതിൽ നിങ്ങൾക്ക് ഉറവിടം ലഭിക്കും.

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

ലിനക്സിൽ DSH (ഡിസ്ട്രിബ്യൂട്ടഡ് ഷെൽ) ഇൻസ്റ്റാൾ ചെയ്യുക

ഈ ട്യൂട്ടോറിയലിന്റെ വ്യാപ്തിക്കായി ഞങ്ങൾ ഒരു ഡെബിയൻ/ഉബുണ്ടു പരിസ്ഥിതി അനുമാനിക്കാൻ പോകുന്നു. നിങ്ങൾ മറ്റൊരു വിതരണമാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ദയവായി നിങ്ങളുടെ പാക്കേജ് മാനേജർക്ക് അനുയോജ്യമായ കമാൻഡുകൾ മാറ്റിസ്ഥാപിക്കുക.

ആദ്യം, apt വഴി പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാം:

$ sudo apt-get install dsh

ഡെബിയൻ ഉപയോഗിക്കാത്തവർക്കും സോഴ്സ് ടാർ ബോളുകളിൽ നിന്ന് കംപൈൽ ചെയ്യാൻ ആഗ്രഹിക്കുന്നവർക്കും വേണ്ടിയുള്ളതാണ് ഈ രീതി. ആദ്യം നിങ്ങൾ 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
# make install

എന്നിട്ട് dsh കംപൈൽ ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യുക.

# 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

പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ “/etc/dsh/dsh.conf” (Debian-ന്), “/usr/local/etc/dsh.conf” (Red Hat-ന്) എന്നിവ വളരെ ലളിതമാണ്, എന്നാൽ rsh ഒരു എൻക്രിപ്റ്റ് ചെയ്യാത്ത പ്രോട്ടോക്കോൾ ആയതിനാൽ, ഞങ്ങൾ റിമോട്ട് ഷെല്ലായി SSH ഉപയോഗിക്കാൻ പോകുന്നു. നിങ്ങൾക്ക് ഇഷ്ടമുള്ള ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച്, ഈ വരി കണ്ടെത്തുക:

remoteshell =rsh

അതിലേക്ക് മാറ്റുക:

remoteshell =ssh

നിങ്ങൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഇവിടെ കടന്നുപോകാൻ കഴിയുന്ന മറ്റ് ഓപ്ഷനുകൾ ഉണ്ട്, കൂടാതെ dsh man പേജിൽ അവയിൽ ധാരാളം കണ്ടെത്താനുമുണ്ട്. ഇപ്പോൾ, ഞങ്ങൾ ഡിഫോൾട്ടുകൾ സ്വീകരിക്കാൻ പോകുന്നു, അടുത്ത ഫയലായ /etc/dsh/machines.list (Debian-ന്) നോക്കുക.

Red Hat അടിസ്ഥാനമാക്കിയുള്ള സിസ്റ്റങ്ങൾക്കായി നിങ്ങൾ /usr/local/etc/ ഡയറക്uടറിയിൽ machines.list എന്നൊരു ഫയൽ ഉണ്ടാക്കേണ്ടതുണ്ട്.

ഇവിടെ വാക്യഘടന വളരെ എളുപ്പമാണ്. ഒരാൾ ചെയ്യേണ്ടത് ഒരു മെഷീന്റെ ക്രെഡൻഷ്യലുകൾ (ഹോസ്റ്റ് നെയിം, IP വിലാസം അല്ലെങ്കിൽ FQDN) ഓരോ വരിയിലും ഒന്ന് നൽകുക എന്നതാണ്.

ശ്രദ്ധിക്കുക: ഒരേസമയം ഒന്നിലധികം മെഷീനുകൾ ആക്uസസ് ചെയ്യുമ്പോൾ, നിങ്ങളുടെ എല്ലാ മെഷീനുകളിലും കീ അധിഷ്uഠിത പാസ്uവേഡ്-കുറവ് എസ്uഎസ്uഎച്ച് സജ്ജീകരിക്കേണ്ടത് നിങ്ങളാണ്. ഇത് ആക്uസസ്സ് എളുപ്പമാക്കുക മാത്രമല്ല, സുരക്ഷയുടെ കാര്യത്തിൽ, ഇത് നിങ്ങളുടെ മെഷീനും കഠിനമാക്കുന്നു.

എന്റെ “/etc/dsh/machines.list” അല്ലെങ്കിൽ “/usr/local/etc/machines.list” ഫയൽ പറയുന്നു:

172.16.25.125
172.16.25.126

നിങ്ങൾ ആക്സസ് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന മെഷീനുകളുടെ ക്രെഡൻഷ്യലുകൾ നൽകിക്കഴിഞ്ഞാൽ, എല്ലാ മെഷീനുകളിലേക്കും \uptime\ പോലെയുള്ള ഒരു ലളിതമായ കമാൻഡ് പ്രവർത്തിപ്പിക്കാം.

$ 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

അപ്പോൾ ഈ കമാൻഡ് എന്താണ് ചെയ്തത്?

വളരെ ലളിതം. ആദ്യം, ഞങ്ങൾ dsh പ്രവർത്തിപ്പിച്ച് അതിലേക്ക് “–a” ഓപ്ഷൻ പാസ്സാക്കി, “/etc/dsh/machines.list” എന്നതിൽ ലിസ്uറ്റ് ചെയ്uതിരിക്കുന്ന മെഷീനുകളുടെ “എല്ലാ” ലേക്കും “uptime” കമാൻഡ് അയയ്uക്കാൻ പറയുന്നു.

അടുത്തതായി, അപ്uടൈം കമാൻഡിന്റെ ഔട്ട്uപുട്ടിനൊപ്പം “മെഷീൻ നെയിം” (“/etc/dsh/machines.list“ എന്നതിൽ വ്യക്തമാക്കിയത്) തിരികെ നൽകാൻ പറയുന്ന “–M” ഓപ്ഷൻ ഞങ്ങൾ വ്യക്തമാക്കി. (നിരവധി മെഷീനുകളിൽ ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ അടുക്കുന്നതിന് വളരെ ഉപയോഗപ്രദമാണ്.)

“–c” ഓപ്uഷൻ ഈ സാഹചര്യത്തിൽ, “അപ്uടൈം” എന്നതിൽ “എക്uസിക്യൂട്ട് ചെയ്യേണ്ട കമാൻഡ്” ആണ്.

/etc/dsh/machines.list ഫയലിന്റെ അതേ ഫോർമാറ്റിലുള്ള മെഷീനുകളുടെ ഒരു ലിസ്റ്റ് ഉള്ള ഒരു ഫയലായ /etc/dsh/groups/ ഫയലിലെ മെഷീനുകളുടെ ഗ്രൂപ്പുകൾ ഉപയോഗിച്ചും DSH കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. ഒരു ഗ്രൂപ്പിൽ dsh പ്രവർത്തിപ്പിക്കുമ്പോൾ, -g ഓപ്ഷന് ശേഷം ഗ്രൂപ്പിന്റെ പേര് വ്യക്തമാക്കുക.

Red Hat അടിസ്ഥാനമാക്കിയുള്ള സിസ്റ്റങ്ങൾക്കായി നിങ്ങൾ /usr/local/etc/ ഡയറക്uടറിയിൽ groups എന്ന ഒരു ഫോൾഡർ ഉണ്ടാക്കേണ്ടതുണ്ട്. ആ ഗ്രൂപ്പുകൾ ഡയറക്ടറിയിൽ നിങ്ങൾ ക്ലസ്റ്റർ എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിക്കുന്നു.

ഉദാഹരണത്തിന്, ക്ലസ്റ്റർ ഗ്രൂപ്പ് ഫയലിൽ /etc/dsh/groups/cluster അല്ലെങ്കിൽ /usr/local/etc/groups/cluster ലിസ്റ്റ് ചെയ്തിട്ടുള്ള എല്ലാ മെഷീനുകളിലും w കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ dsh –M –g cluster –c w

DSH കൂടുതൽ വഴക്കം നൽകുന്നു, കൂടാതെ ഈ ട്യൂട്ടോറിയൽ ഉപരിതലത്തിൽ മാന്തികുഴിയുണ്ടാക്കുന്നു. കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് പുറമെ, ഫയലുകൾ കൈമാറുന്നതിനും സോഫ്uറ്റ്uവെയർ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും റൂട്ടുകൾ ചേർക്കുന്നതിനും മറ്റും DSH ഉപയോഗിക്കാം.

ഒരു വലിയ നെറ്റ്uവർക്കിന്റെ ഉത്തരവാദിത്തം ചുമതലപ്പെടുത്തിയിട്ടുള്ള ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർക്ക് അത് വിലമതിക്കാനാവാത്തതാണ്.