ค้นหาเว็บไซต์

DSH (Dancer's Shell) - เรียกใช้คำสั่งบนโฮสต์ Linux หลายเครื่อง


ผู้ดูแลระบบ ตระหนักดีถึงความสำคัญของความสามารถในการตรวจสอบและจัดการเครื่องจักรจำนวนมากในระยะเวลาอันสั้น โดยควรมีการเคลื่อนไหวร่างกายเพียงเล็กน้อย ไม่ว่าจะเป็นสภาพแวดล้อมคลาวด์ขนาดเล็กหรือคลัสเตอร์เซิร์ฟเวอร์ขนาดใหญ่ ความสามารถในการจัดการคอมพิวเตอร์จากส่วนกลางถือเป็นสิ่งสำคัญ

เพื่อบรรลุเป้าหมายนี้บางส่วน ฉันจะแสดงให้คุณเห็นถึงวิธีการใช้เครื่องมือเล็กๆ น้อยๆ ที่เรียกว่า DSH (เชลล์ของนักเต้น/เชลล์แบบกระจาย) ที่ช่วยให้ผู้ใช้สามารถรันคำสั่งบนเครื่องหลายเครื่องได้

ดีเอสเอชคืออะไร?

DSH ย่อมาจาก 'Distributed Shell' หรือ 'Dancer's Shell' ซึ่งเป็นเครื่องมือที่มีให้ใช้งานฟรีบน Linux เวอร์ชันหลักส่วนใหญ่ แต่สามารถ สร้างได้อย่างง่ายดายจากแหล่งที่มาหากการแจกจ่ายของคุณไม่ได้รวมไว้ในที่เก็บแพ็คเกจ

ติดตั้ง DSH (Distributed Shell) ใน Linux

เราจะใช้สภาพแวดล้อม Debian/Ubuntu สำหรับขอบเขตของบทช่วยสอนนี้ หากคุณกำลังใช้การแจกจ่ายอื่น โปรดทดแทนคำสั่งที่เหมาะสมสำหรับตัวจัดการแพ็คเกจของคุณ

ในการแจกแจงแบบ Debian คุณสามารถติดตั้ง DSH ได้โดยใช้คำสั่ง apt ต่อไปนี้ในเทอร์มินัล

sudo apt install dsh

ในการแจกแจงแบบอิง RHEL คุณต้องคอมไพล์จาก tar ball ต้นทาง แต่ก่อนที่จะดำเนินการดังกล่าว ตรวจสอบให้แน่ใจว่าได้คอมไพล์และติดตั้งไลบรารี '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

จากนั้นคอมไพล์ dsh และติดตั้ง

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

วิธีใช้ DSH ใน Linux

ไฟล์การกำหนดค่าหลัก “/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 คุณต้องสร้างไฟล์ชื่อ “machines.list” ใน “/usr/local/etc/” ไดเรกทอรี

ไวยากรณ์ที่นี่ค่อนข้างง่าย สิ่งที่คุณต้องทำคือป้อนข้อมูลประจำตัวของเครื่อง (ชื่อโฮสต์, ที่อยู่ IP หรือ FQDN) หนึ่งรายการต่อบรรทัด

หมายเหตุ: เมื่อเข้าถึงมากกว่าหนึ่งเครื่องพร้อมกัน คุณจะต้องตั้งค่า SSH โดยไม่ต้องใช้รหัสผ่านแบบใช้คีย์บนทุกเครื่องของคุณ สิ่งนี้ไม่เพียงแค่ให้ความสะดวกในการเข้าถึงเท่านั้น แต่ยังคำนึงถึงความปลอดภัยอีกด้วย มันทำให้เครื่องของคุณแข็งแกร่งขึ้นเช่นกัน

ไฟล์ “/etc/dsh/machines.list” หรือ “/usr/local/etc/machines.list” ของฉันบอกว่า:

172.16.25.125
172.16.25.126

เมื่อคุณป้อนข้อมูลประจำตัวของเครื่องที่คุณต้องการเข้าถึงแล้ว ให้เรียกใช้คำสั่งง่ายๆ เช่น เวลาทำงานของเครื่องทั้งหมด

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' ทำอะไร?

ค่อนข้างง่าย ขั้นแรก เราใช้ dsh และส่งตัวเลือก “-a” ไปที่มัน ซึ่งบอกว่าให้ส่งคำสั่ง “uptime” ไปที่ “ทั้งหมด” ของเครื่องที่อยู่ในรายการ “/etc/dsh/machines.list

ต่อไป เราได้ระบุตัวเลือก “-M” ซึ่งระบุว่าจะส่งคืน “ชื่อเครื่อง” (ระบุใน “/etc/dsh/machines.list<“) พร้อมกับเอาต์พุตของคำสั่ง uptime (มีประโยชน์มากสำหรับการเรียงลำดับเมื่อรันคำสั่งบนเครื่องหลายเครื่อง)

ตัวเลือก “-c” ย่อมาจาก “คำสั่งที่จะดำเนินการ” ในกรณีนี้คือ “เวลาทำงาน

DSH ยังสามารถกำหนดค่าด้วยกลุ่มของเครื่องในไฟล์ “/etc/dsh/groups/” โดยที่ไฟล์ที่มีรายการเครื่องในรูปแบบเดียวกับ ไฟล์ “/etc/dsh/machines.list” เมื่อเรียกใช้ dsh ในกลุ่ม ให้ระบุ ชื่อกลุ่ม หลังตัวเลือก “-g

สำหรับระบบ ที่ใช้ Red Hat คุณต้องสร้างโฟลเดอร์ชื่อ “กลุ่ม” ในไดเรกทอรี “/usr/local/etc/” ในไดเรกทอรี “กลุ่ม” นั้น คุณสร้างไฟล์ชื่อ “คลัสเตอร์

ตัวอย่างเช่น เรียกใช้คำสั่ง “w” บนเครื่องทั้งหมดที่แสดงอยู่ในไฟล์กลุ่ม “คลัสเตอร์” “/etc/dsh/groups/cluster ” หรือ “/usr/local/etc/groups/cluster

dsh -M -g cluster -c w

DSH ให้ความยืดหยุ่นมากกว่ามาก และบทช่วยสอนนี้เป็นเพียงรอยขีดข่วนบนพื้นผิวเท่านั้น นอกเหนือจากการดำเนินการคำสั่งแล้ว DSH ยังสามารถใช้เพื่อถ่ายโอนไฟล์ ติดตั้งซอฟต์แวร์ เพิ่มเส้นทาง และอื่นๆ อีกมากมาย

สำหรับ ผู้ดูแลระบบ ที่ได้รับมอบหมายให้รับผิดชอบเครือข่ายขนาดใหญ่ ถือเป็นสิ่งล้ำค่า