4 เครื่องมือที่มีประโยชน์ในการรันคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่อง
ในบทความนี้ เราจะแสดงวิธีเรียกใช้คำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่องพร้อมกัน เราจะอธิบายวิธีการใช้เครื่องมือที่เป็นที่รู้จักกันอย่างแพร่หลาย ซึ่งออกแบบมาเพื่อดำเนินการชุดคำสั่งซ้ำๆ บนเซิร์ฟเวอร์หลายเครื่องพร้อมกัน คู่มือนี้มีประโยชน์สำหรับผู้ดูแลระบบที่มักจะต้องตรวจสอบสภาพของเซิร์ฟเวอร์ Linux หลายตัวทุกวัน
สำหรับวัตถุประสงค์ของบทความนี้ เราถือว่าคุณมีการตั้งค่า SSH เพื่อเข้าถึงเซิร์ฟเวอร์ทั้งหมดของคุณอยู่แล้ว และประการที่สอง เมื่อเข้าถึงเซิร์ฟเวอร์หลายเครื่องพร้อมกัน คุณควรตั้งค่า SSH โดยไม่ต้องใช้รหัสผ่านแบบใช้คีย์บนเซิร์ฟเวอร์ Linux ทั้งหมดของคุณ เหนือสิ่งอื่นใดนี้ช่วยเพิ่มความปลอดภัยของเซิร์ฟเวอร์และยังช่วยให้เข้าถึงได้ง่ายอีกด้วย
อ่านเพิ่มเติม: วิธีกำหนดค่าการเชื่อมต่อ SSH แบบกำหนดเองเพื่อทำให้การเข้าถึงระยะไกลง่ายขึ้น
1. PSSH – SSH แบบขนาน
Parallel-SSH เป็นชุดเครื่องมือ Python แบบโอเพ่นซอร์ส รวดเร็วและใช้งานง่ายสำหรับการดำเนินการ ssh แบบขนานบนระบบ Linux หลายระบบ ประกอบด้วยเครื่องมือจำนวนหนึ่งสำหรับวัตถุประสงค์ต่างๆ เช่น parallel-ssh, Parallel-SCP, parallel-rsync, parallel-slurp และ parallel-nuke (อ่าน man page ของเครื่องมือเฉพาะเพื่อดูข้อมูลเพิ่มเติม)
หากต้องการติดตั้ง parallel-ssh คุณต้องติดตั้ง PIP บนระบบ Linux ก่อน
sudo apt install python-pip python-setuptools #Debian/Ubuntu
yum install python-pip python-setuptools #RHEL/CentOS
dnf install python-pip python-setuptools #Fedora 22+
จากนั้นติดตั้ง parallel-ssh โดยใช้ pip ดังนี้
sudo pip install parallel-ssh
จากนั้น ป้อนชื่อโฮสต์หรือที่อยู่ IP ของเซิร์ฟเวอร์ Linux ระยะไกลด้วยพอร์ต SSH ในไฟล์ชื่อ โฮสต์ (คุณสามารถตั้งชื่ออะไรก็ได้ที่คุณต้องการ):
vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22
บันทึกไฟล์และปิด
ตอนนี้รัน parallel-ssh ระบุไฟล์โฮสต์โดยใช้ตัวเลือก -h
และคำสั่งที่จะดำเนินการบนเซิร์ฟเวอร์ที่ระบุทั้งหมด ธง -i
หมายถึงการแสดง เอาต์พุต std และ ข้อผิดพลาด std เมื่อการดำเนินการคำสั่งบนแต่ละเซิร์ฟเวอร์เสร็จสมบูรณ์
parallel-ssh -h hosts "uptime; df -h"
คุณควรตรวจสอบ: วิธีเรียกใช้คำสั่งหลายคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่อง
2. Pdsh – ยูทิลิตี้เชลล์ระยะไกลแบบขนาน
Pdsh เป็นเครื่องมือเชลล์ระยะไกลแบบโอเพ่นซอร์สที่เรียบง่ายแบบขนานสำหรับดำเนินการคำสั่งบนเซิร์ฟเวอร์ Linux หลายเครื่องในเวลาเดียวกัน มันใช้หน้าต่างเลื่อนของเธรดเพื่อดำเนินการคำสั่งระยะไกล
หากต้องการติดตั้ง Pdsh บนเครื่อง Linux ให้เรียกใช้คำสั่งที่เหมาะสมด้านล่าง
sudo apt install pdsh #Debian/Ubuntu
yum install pdsh #RHEL/CentOS
dnf install pdsh #Fedora 22+
หากต้องการรันคำสั่งบนเซิร์ฟเวอร์หลายเครื่อง ให้เพิ่มเซิร์ฟเวอร์ลงในไฟล์โฮสต์ตามที่อธิบายไว้ก่อนหน้านี้ จากนั้นรัน pdsh ดังรูป ธง -w
ใช้เพื่อระบุไฟล์โฮสต์ และ -R
ใช้เพื่อระบุโมดูลคำสั่งระยะไกล (โมดูลคำสั่งระยะไกลที่มีอยู่ ได้แก่ ssh, rsh, exec, ค่าเริ่มต้นคือ rsh)
จด ^
หน้าไฟล์โฮสต์
pdsh -w ^hosts -R ssh "uptime; df -h"
ในกรณีที่คุณไม่ได้ระบุคำสั่งระยะไกลที่จะดำเนินการบนบรรทัดคำสั่งดังที่แสดงด้านบน pdsh จะทำงานแบบโต้ตอบ โดยแจ้งให้คุณใส่คำสั่งและรันคำสั่งเหล่านั้นเมื่อสิ้นสุดด้วยการขึ้นบรรทัดใหม่ สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้า pdsh man:
man pdsh
3. คลัสเตอร์SSH
ClusterSSH เป็นเครื่องมือบรรทัดคำสั่งสำหรับการจัดการคลัสเตอร์ของเซิร์ฟเวอร์หลายเครื่องในเวลาเดียวกัน โดยจะเปิดคอนโซลการดูแลระบบและ xterm ไปยังเซิร์ฟเวอร์ที่ระบุทั้งหมด ทำให้คุณสามารถรันคำสั่งเดียวกันบนเซิร์ฟเวอร์ทั้งหมดได้
หากต้องการใช้ clusterssh ให้เริ่มต้นด้วยการติดตั้งลงในคอมพิวเตอร์ Linux ในพื้นที่ของคุณดังที่แสดง
sudo apt install clusterssh #Debian/Ubuntu
yum install clusterssh #RHEL/CentOS
sudo dnf install clusterssh #Fedora 22+
เมื่อคุณติดตั้งแล้ว ให้เปิดคอนโซลผู้ดูแลระบบและ xterm บนเซิร์ฟเวอร์ระยะไกลพร้อมกัน ดังนี้ หากต้องการรันคำสั่งบนเซิร์ฟเวอร์ทั้งหมด ให้คลิกในแถบอินพุต xterm แล้วพิมพ์คำสั่งของคุณ หากต้องการจัดการโฮสต์เดียว ให้ใช้คอนโซลผู้ดูแลระบบ
clusterssh linode cserver contabo
OR
clusterssh username@server1 username@server2 username@server3
สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าคนคลัสเตอร์:
man clusterssh
4. เข้าใจได้
Ansible เป็นโอเพ่นซอร์สและเครื่องมือยอดนิยมในการทำให้กระบวนการไอทีเป็นอัตโนมัติ ใช้สำหรับการกำหนดค่าและการจัดการระบบ การปรับใช้แอปพลิเคชัน และอื่นๆ อีกมากมาย
หากต้องการติดตั้ง Ansible บนระบบ Linux ให้เรียกใช้คำสั่งที่เหมาะสมด้านล่าง:
sudo apt install ansible #Debian/Ubuntu
yum install ansible #RHEL/CentOS
sudo dnf install ansible #Fedora 22+
เมื่อคุณติดตั้ง ansible แล้ว คุณสามารถเพิ่มชื่อโฮสต์หรือที่อยู่ IP ของเซิร์ฟเวอร์ของคุณในไฟล์ /etc/anasible/hosts
sudo vim /etc/anasible/hosts
ระบุเป็นกลุ่ม เช่น เว็บเซิร์ฟเวอร์
Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
139.10.100.147
139.20.40.90
192.30.152.186
บันทึกไฟล์และปิด
ตอนนี้เพื่อตรวจสอบ เวลาทำงาน และผู้ใช้ที่เชื่อมต่อกับเซิร์ฟเวอร์ทั้งหมดที่ระบุในกลุ่ม เว็บเซิร์ฟเวอร์ ในไฟล์กำหนดค่าโฮสต์ด้านบน เพียงเรียกใช้เครื่องมือบรรทัดคำสั่ง ansible ดังต่อไปนี้
ตัวเลือก -a
ใช้เพื่อระบุอาร์กิวเมนต์ที่จะส่งผ่านไปยังโมดูลและแฟล็ก -u
ระบุ ชื่อผู้ใช้ เริ่มต้นเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล ผ่านทาง SSH
โปรดทราบว่าเครื่องมือ Ansible CLI อนุญาตให้คุณดำเนินการได้มากที่สุดเพียงคำสั่งเดียวเท่านั้น
ansible webservers -a "w " -u admin
นั่นคือทั้งหมด! ในบทความนี้ เราได้อธิบายวิธีเรียกใช้คำสั่งบนเซิร์ฟเวอร์ Linux ระยะไกลหลายเครื่องพร้อมกันโดยใช้เครื่องมือที่ใช้กันอย่างแพร่หลาย หากคุณรู้จักเครื่องมือใดๆ ที่มีเพื่อจุดประสงค์เดียวกันซึ่งเราไม่ได้รวมไว้ในบทความนี้ โปรดแจ้งให้เราทราบผ่านแบบฟอร์มความคิดเห็นด้านล่าง