ฉันจะจัดการ apt อย่างมีประสิทธิภาพในหลาย ๆ เครื่องได้อย่างไร


11

ฉันจัดการเซิร์ฟเวอร์ Ubuntu ประมาณ 30 เครื่องโดยใช้หุ่นเชิด ฉันได้เห็นการอ้างอิงถึง cron-apt และ apticron เป็นจำนวนมากเพื่อหาวิธีรักษาแพ็คเกจของพวกเขาให้ทันสมัย ​​แต่ฉันไม่สามารถหาวิธีในการจัดการกระบวนการจากส่วนกลาง ด้วย cront-apt / apticron ฉันยังคงต้องลงชื่อเข้าใช้แต่ละโฮสต์และเรียกใช้aptitude updateเพื่อดำเนินการอัปเดต ไม่ต้องพูดถึงการแจ้งเตือนรีวิวจากเครื่องจักรทั้ง 30 เครื่องเมื่อมีการอัพเดทแพ็คเกจหลัก

จะต้องมีวิธีที่ดีกว่า ข้อเสนอแนะใด ๆ

คำตอบ:


3

ภูมิทัศน์อาจเป็นที่สนใจของคุณ นี่เป็นเครื่องมือการจัดการ "อย่างเป็นทางการ" สำหรับการจัดการการปรับใช้ Ubuntu ขนาดใหญ่และ Canonical อาจจะกระตือรือร้นที่จะรับเงินดอลลาร์สำหรับการใช้งาน

RE-แก้ไข:

ประการแรกข้อจำกัดความรับผิดชอบ ฉันไม่ได้ใช้การมิเรอร์สำหรับ Debian หรือ Ubuntu ดังนั้นฉันจึงไม่คุ้นเคยกับซอฟต์แวร์

ประการที่สองดูเหมือนว่า apt-mirror น่าจะเป็นทางออกที่ "หนักเกินไป" คำขอโทษของฉัน แนวคิดดั้งเดิมคือคุณจะต้องมีเครื่องทดสอบแยกต่างหาก (หรือสภาพแวดล้อมการทดสอบซึ่งอาจเป็นเครื่องเสมือนจริง) เพื่อปรับใช้การอัปเดต เมื่อคุณพอใจกับประสิทธิภาพของการอัปเดตแล้วคุณจะดึง / วางแพ็กเกจลงในมิเรอร์ "ปรับใช้" ของคุณ (จะมีมิเรอร์โลคัลจากแหล่งข้อมูลอย่างเป็นทางการและมิรเรอร์สำรองสำหรับการอัปเดตที่คุณต้องการปรับใช้) จากนั้นเครื่องระยะไกลจะเรียกใช้การอัปเดตตามเวลาที่ตั้งไว้ล่วงหน้าและดึงจากมิเรอร์ "ปรับใช้" ของคุณไปยังแต่ละเครื่องงาน cron ประกอบด้วย:

apt-get update && apt-get upgrade --quiet --assume-yes

น่าเสียดายที่เมื่อฉันเริ่มอ่านรายละเอียดดูเหมือนว่าapt-mirrorจะดึงของทุกชนิดไม่ใช่แค่แพ็คเกจที่คุณใช้ ดังนั้นฉันจะละทิ้งความคิดนี้แม้ว่าแนวคิดจะมีข้อดีอยู่บ้าง


ภูมิทัศน์ดูน่าสนใจ ฉันจะต้องดูให้ละเอียดยิ่งขึ้น ฉันไม่ชัดเจนเกี่ยวกับวิธีใช้มิเรอร์ apt เฉพาะที่ (ซึ่งฉันทำอยู่ในปัจจุบัน) จะช่วยฉันอนุมัติ / ตรวจทานการอัปเดตที่รอดำเนินการ คุณช่วยอธิบายได้ไหม?
Insyte

14

เพื่อนร่วมงานค้นพบและดูสั้น ๆ เกี่ยวกับ apt-dater ซึ่งเป็น "ผู้จัดการอัพเดตแพ็กเกจรีโมตแบบใช้เทอร์มินัล"

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

อาศัย ssh และ sudo บนเครื่องที่จัดการ

ดูhttp://www.ibh.de/apt-dater/

ยังไม่ได้ใช้ด้วยตัวเองดังนั้นฉันไม่สามารถรับรองได้ แต่ฟังดูใกล้เคียงกับสิ่งที่คุณกำลังมองหา


สิ่งนี้ดูมีแนวโน้มมาก Insyte ฉันจะแนะนำคำตอบนี้ให้กับตัวเอง ในขณะที่คุณสามารถทำตามทุกขั้นตอนที่ฉันได้อธิบายคุณต้องการที่จะลงทุนเวลาจริง ๆ หรือไม่เมื่อคุณสามารถตั้งค่าสิ่งนี้ได้อย่างรวดเร็วและใช้ชีวิตต่อไปหรือไม่? @Jeff +1 สำหรับคำแนะนำที่ดี
Avery Payne

4

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


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

2
ทำไมประเภทแพคเกจ Puppet จึงติดตั้งแพ็คเกจทั้งหมดในทุกเครื่อง? คุณใส่ stanzas สำหรับแต่ละแพ็คเกจลงในคลาสที่เกี่ยวข้องหรือประเภทที่กำหนดดังนั้นมันจะถูกติดตั้งในเครื่องที่เหมาะสมเท่านั้น หากคุณต้องการรวมรายการรุ่นไว้ที่ส่วนกลางให้อยู่ในไฟล์เดียวให้มีรายการทรัพยากรเสมือนขนาดใหญ่จากนั้นให้ตระหนักถึงความจำเป็น
womble

2

ดูที่คลัสเตอร์ (apt-get install clusterssh):

$ cssh server1 server2 server3 ...


1
ยังใช้งานได้จริงใน 10.9.3 ... มันเป็นเรื่องตลกที่จะใช้มัน
Jonathan S. Fisher

1

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

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

Apticron ไม่ได้ปรับขนาดได้ดีมันถูกออกแบบมาให้ทำงานในสภาพแวดล้อมที่เล็ก แต่ก็มีข้อดีอยู่บ้าง:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.