ที่ฉันทำงานอยู่ในขณะนี้เราต้องจัดการส่วน Linux ของเซิร์ฟเวอร์ฟาร์มของเราซึ่งมีเซิร์ฟเวอร์ Linux เพียง 300 ตัวเท่านั้น ซึ่งรวมถึง HP Proliants ส่วนใหญ่ตามด้วย IBM 3850s เบลด IBM บางรุ่น VMware ESX และ KVM บางตัวสำหรับเซิร์ฟเวอร์การจัดการภายในของเรา
พายผลไม้
เราดูที่พายผลไม้ แต่ปัญหาที่เกิดขึ้นนั่นคือพายผลไม้เป็น RHEL / Red Hat เฉพาะมาก เราจำเป็นต้องสนับสนุน RHEL และ SLES เป็นอย่างน้อยและ Ubuntu ก็เป็นเช่นนั้น
หุ่นเชิด
เราได้พิจารณาหุ่นกระบอก แต่ต่อมาก็ตัดสินใจต่อเนื่องจากมันขึ้นอยู่กับ Ruby ซึ่งหมายความว่าการอัพเกรด Ruby อาจทำให้ระบบการจัดการของเราพัง
Hotwire
Hotwire คือสิ่งที่เราใช้ (พัฒนาขึ้นภายใน แต่เป็นโอเพ่นซอร์ส) และได้ทำเช่นนั้นในช่วงไม่กี่ปีที่ผ่านมา ในตอนแรกมันจะทำการสร้างระบบที่กำลังจะสร้างขึ้นซึ่งหมายถึงการจัดทำคลังข้อมูลศูนย์ข้อมูลชั้นวางฮาร์ดแวร์ระบบปฏิบัติการเครือข่าย ฯลฯ และทำการสร้างและปรับใช้อย่างรวดเร็ว เมื่อสร้างระบบขึ้นมาแล้วสินค้าคงคลังอัตโนมัติของ hotwire จะเก็บสินค้าคงคลังไว้ในซิงค์ขณะที่ cfengine ดูแลพวกเขา Hotwire รู้เกี่ยวกับฮาร์ดแวร์เซิร์ฟเวอร์โดยการพูดคุยกับข้อมูล SMBIOS / DMI ใน BIOS ผ่านหลาม dmidecode
คะแนนโบนัสคือการรวมสินค้าคงคลังและสร้างกระบวนการเข้าด้วยกันดังนั้นจึงมีน้อยกว่าในการจัดการและคุณลักษณะของสินค้าคงคลังสดนั้นยอดเยี่ยมดังที่เราทราบว่ามีบางอย่างไม่ถูกต้อง
ข้อเสียคืออินเทอร์เฟซผู้ใช้ยังคงต้องขัดและมีข้อบกพร่องที่นี่และที่นั่น แต่การพัฒนายังคงร้อนและรายงานข้อบกพร่องจะค่อนข้างคงที่อย่างรวดเร็ว
cfengine
เราใช้ cfengine เพราะนอกเหนือจากนั้นและหุ่นกระบอกไม่มีอะไรอื่นอีกแล้ว จริง ๆ แล้วมันเป็นเครื่องมือที่ดี แต่ "ดี" เท่านั้นเป็นฟังก์ชั่นของนโยบายของคุณดีแค่ไหน - ถ้าคุณกำหนดนโยบายที่เป็นอันตรายความผิดพลาดเล็กน้อยอาจทำให้เกิดความเสียหายได้มาก ตัวอย่างเช่นตามนโยบายเราจะไม่ "แก้ไข" ไฟล์เราอาจแทนที่ไฟล์เหล่านั้นหรือไม่ นอกจากนี้ไฟล์ทั้งหมดที่ถูกแทนที่มีส่วนหัวที่ทำให้บุคคลใด ๆ แก้ไขมันรู้ว่ามันจะถูกแทนที่ในครั้งต่อไปที่มันทำงาน (มันจะทำงานผ่าน cron ทุกชั่วโมง)
การกำหนดค่าและไฟล์ทั้งหมดที่ส่งออกโดย cfengine ไปยังเซิร์ฟเวอร์นั้นจะถูกเก็บไว้ใน SCM และการใช้ hooks post-commit หากเป็นไปได้เราจะตรวจสอบไวยากรณ์และหากล้มเหลวการคอมมิทจะถูกปฏิเสธ นี่เป็นเรื่องง่ายสำหรับแอปพลิเคชันที่ดีเช่น Apache แต่ไม่ใช่เรื่องง่ายสำหรับแอปพลิเคชันระดับองค์กรส่วนใหญ่