sshsync เทียบกับ Ansible: ชุมชนถกเถียงข้อดีของเครื่องมือจัดการ SSH ตัวใหม่

BigGo Editorial Team
sshsync เทียบกับ Ansible: ชุมชนถกเถียงข้อดีของเครื่องมือจัดการ SSH ตัวใหม่

การเปิดตัวของ sshsync ซึ่งเป็นเครื่องมือคำสั่งใหม่สำหรับการจัดการการเชื่อมต่อ SSH หลายรายการ ได้จุดประกายการถกเถียงอย่างคึกคักในหมู่ผู้ดูแลระบบและมืออาชีพด้าน DevOps เกี่ยวกับประโยชน์การใช้งานเมื่อเทียบกับโซลูชันที่มีอยู่แล้วอย่าง Ansible เครื่องมือที่พัฒนาด้วย Python ซึ่งช่วยให้ผู้ใช้สามารถรันคำสั่ง shell บนเซิร์ฟเวอร์ระยะไกลหลายเครื่องพร้อมกัน ได้รับการตอบรับที่หลากหลายจากชุมชนเทคนิค

ความซ้ำซ้อนของเครื่องมือ vs. กรณีการใช้งานเฉพาะทาง

คำวิจารณ์หลักที่มีต่อ sshsync มุ่งเน้นไปที่ความซ้ำซ้อนที่รับรู้ได้ ผู้แสดงความคิดเห็นหลายคนตั้งคำถามถึงความจำเป็นของเครื่องมือจัดการ SSH อีกตัวหนึ่ง ในเมื่อมีโซลูชันที่แข็งแกร่งอย่าง Ansible, pssh หรือแม้แต่สคริปต์ shell พื้นฐานที่มี SSH และ SCP อยู่แล้ว ผู้แสดงความคิดเห็นรายหนึ่งระบุว่าการตั้งค่าคีย์ SSH และรายการกับ Ansible ใช้เวลาเพียง 10 นาที แม้ว่าคุณจะทำมันเป็นครั้งแรก ซึ่งบ่งชี้ว่าเครื่องมือที่มีอยู่แล้วสามารถแก้ปัญหาที่ sshsync ต้องการจัดการได้อยู่แล้ว

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

เหตุผลที่ผมพบว่ามันดีกว่า Ansible คือ: มันใช้ไวยากรณ์และตัวเลือกเดียวกันกับ SSH ธรรมดา เพียงแต่รันบนโฮสต์หลายเครื่อง ดังนั้นถ้าคุณรู้จัก SSH อยู่แล้ว คุณก็รู้วิธีใช้มัน... ไม่ต้องการการติดตั้งเพิ่มเติมบนเครื่องเป้าหมาย Ansible ต้องการการติดตั้ง python3 บนเครื่องเป้าหมาย ซึ่งไม่ได้รับประกันในทุกสภาพแวดล้อม (เช่น อุปกรณ์ฝังตัว)

มุมมองนี้เน้นให้เห็นถึงความแตกต่างที่แท้จริงในชุมชน DevOps ระหว่างผู้ที่ชอบระบบจัดการการกำหนดค่าที่ครอบคลุม และผู้ที่ให้คุณค่ากับเครื่องมือที่เรียบง่ายและเฉพาะทางมากกว่าสำหรับงานเฉพาะ

เครื่องมือจัดการ SSH ทางเลือกที่กล่าวถึงในการสนทนา:

  • Ansible - ระบบจัดการการกำหนดค่าแบบสมบูรณ์ที่ต้องใช้ Python บนเครื่องเป้าหมาย
  • pssh - เครื่องมือสำหรับการดำเนินคำสั่ง SSH แบบขนานที่มีการกำหนดค่าอย่างง่าย
  • Fabric - ไลบรารี Python สำหรับทำให้การใช้งาน SSH ง่ายขึ้น
  • pyinfra - เครื่องมือจัดการโครงสร้างพื้นฐานที่ใช้ Python
  • GoSSHa - เครื่องมือที่พัฒนาด้วย Go ที่ปรับให้เหมาะกับการส่งต่อตัวแทน SSH ในระดับใหญ่
  • GNU Parallel - เครื่องมือสำหรับการดำเนินงานแบบขนาน
  • PowerShell Invoke-Command - การดำเนินคำสั่งระยะไกลบนพื้นฐานของ Windows

ข้อพิจารณาด้านขนาดและประสิทธิภาพ

ข้อมูลเชิงเทคนิคที่น่าสนใจมาจากผู้ใช้ที่เคยสร้างเครื่องมือคล้ายกันสำหรับการจัดการเซิร์ฟเวอร์ประมาณ 3,000 เครื่อง พวกเขาเน้นย้ำถึงความท้าทายทางเทคนิคเฉพาะเกี่ยวกับการตรวจสอบสิทธิ์ของตัวแทน SSH ในระดับใหญ่ โดยระบุว่าโซลูชันที่พัฒนาด้วย Go ของพวกเขาช่วยให้คุณสามารถทำการส่งต่อตัวแทน SSH ที่ทำงานได้จริงในระดับใหญ่โดยการจำกัดการทำงานพร้อมกันเมื่อสื่อสารกับตัวแทน SSH

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

ช่องว่างของคุณสมบัติและข้อจำกัด

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

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

คุณสมบัติหลักของ sshsync:

  • รันคำสั่ง shell พร้อมกันบนเซิร์ฟเวอร์หลายเครื่อง
  • การกำหนดค่าแบบกลุ่มสำหรับการเลือกเป้าหมายเซิร์ฟเวอร์เฉพาะ
  • พุช/ดึงไฟล์ระหว่างโฮสต์ในเครื่องและโฮสต์ระยะไกล
  • โหมดทดลองรัน เพื่อดูตัวอย่างการทำงานก่อนดำเนินการจริง
  • ใช้การตั้งค่า SSH ที่มีอยู่จาก ~/.ssh/config
  • ไม่จำเป็นต้องมีการติดตั้งเพิ่มเติมบนเครื่องเป้าหมาย
  • เขียนด้วย Python 3.10+

มุมมองของนักพัฒนา

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

สิ่งนี้เน้นให้เห็นถึงแง่มุมสำคัญของการพัฒนาโอเพนซอร์ส—ไม่ใช่ทุกเครื่องมือที่จำเป็นต้องปฏิวัติอุตสาหกรรม บางครั้งโครงการก็เป็นประสบการณ์การเรียนรู้ แก้ปัญหาความต้องการส่วนตัวเฉพาะ หรือเติมเต็มช่องว่างเล็กๆ ที่เครื่องมือหลักอาจมองข้าม

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

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

ดังที่ผู้แสดงความคิดเห็นรายหนึ่งสังเกตอย่างตรงไปตรงมา Ansible เป็นหนึ่งในตัวอย่างที่ดีที่สุดของความซับซ้อนที่ไม่จำเป็นที่ผมเคยมีปฏิสัมพันธ์ด้วย—ความรู้สึกที่อธิบายว่าทำไมทางเลือกที่เรียบง่ายกว่ายังคงเกิดขึ้นแม้จะมีความเป็นผู้ใหญ่ของพื้นที่การจัดการการกำหนดค่า

ไม่ว่า sshsync จะได้รับการยอมรับอย่างแพร่หลายหรือไม่ก็ตาม แต่การสนทนาที่มันได้จุดประกายขึ้นเน้นให้เห็นถึงความต้องการอย่างต่อเนื่องสำหรับเครื่องมือที่สร้างความสมดุลระหว่างพลังและความเรียบง่ายในสภาพแวดล้อมไอทีที่ซับซ้อนมากขึ้นเรื่อยๆ ในปัจจุบัน

อ้างอิง: sshsync