แนวทางปฏิบัติที่ดีที่สุดในการรักษาแพคเกจ UNIX ให้ทันสมัยอยู่เสมอ?


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

คำตอบ:


19

บนระบบที่ใช้ Linux / Debian, cron-aptเป็นเครื่องมือที่มีประโยชน์มากที่สามารถจัดการ apt อัตโนมัติผ่าน cron

ฉันใช้มันapt-get updateทุกวันและส่งอีเมลหาฉันหากต้องมีการติดตั้งการอัปเดตใหม่

นี่คือการแนะนำสั้น ๆ และทำดีในเครื่องมือนั้น


ฉันชอบที่จะมีแพ็คเกจขั้นต่ำที่อัปเดตอัตโนมัติและที่สำคัญคือแพ็คเกจความปลอดภัย ด้วยเหตุผลนี้ฉันเพิ่มสิ่งต่อไปนี้ลงในไฟล์กำหนดค่า cron-apt: OPTIONS="-o Dir::Etc::SourceList=/etc/apt/security.sources.list" จากนั้นให้ /etc/apt/security.sources.list มีที่เก็บความปลอดภัย Debian ที่เปิดใช้งาน ด้วยวิธีนี้ฉันได้รับการอัปเดตความปลอดภัยทั้งหมดที่ติดตั้งโดยอัตโนมัติในเวลาที่เหมาะสม (ในแต่ละคืน) และฉันสามารถทำการอัพเกรดอื่น ๆ ที่มีความเสี่ยงสูงซึ่งอาจทำลายสิ่งต่าง ๆ ด้วยมือ
Drew Stephens

10

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

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


4
ว้าว; ทุกคนกำลังลุกฮือเพราะฉันฉลาดมากหรือคนกำลังแข่งกันเพื่อรับตรา? ;)
Mikeage


4

ฉันใช้apt-historyสำหรับประวัติ ผมเคยคิดว่าทำไมเครื่องมือที่มีประโยชน์นี้ไม่ได้รวมโดยเริ่มต้นไม่มันเป็นครั้งแรกที่ฉันแพคเกจการปรับใช้กับหุ่น


apt-history แตกต่างจากสิ่งที่บันทึกไว้โดยค่าเริ่มต้นใน / var / log อย่างไร
jldugger

ฉันไม่ทราบว่าคุณหมายถึงอะไร (จากคำตอบของคุณ); ฉันเดาว่าฉันต้องรู้จักประวัติที่ฉลาดและคุ้นเคยกับมัน
ทำเครื่องหมาย

3

ฉันรัน/ usr / bin / apt-get update -qq; / usr / bin / apt-get dist-upgrade -duyqเป็นงาน cron ทุกคืน ในตอนเช้าฉันมีการแจ้งเตือนเกี่ยวกับแพคเกจที่ต้องอัปเกรดและไฟล์ที่ได้รับการดาวน์โหลดแล้วในเครื่อง

จากนั้นฉันมักจะถ่ายภาพของเครื่อง (เซิร์ฟเวอร์ส่วนใหญ่ของเราเป็นเสมือน) ทำapt-get dist-upgradeตรวจสอบnagiosและตรวจสอบให้แน่ใจว่าทุกอย่างยังทำงานได้และลบสแน็ปช็อต

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

เท่าที่มีการ จำกัด การดาวน์โหลดซ้ำซ้อนฉันเข้าใจว่าคุณสามารถตั้งค่าแคชเว็บพร็อกซี (squid?) ระหว่างเซิร์ฟเวอร์ของคุณและอินเทอร์เน็ตที่จะแคชไฟล์. deb ในครั้งแรกที่มีการเข้าถึง บางทีนี่อาจจะง่ายกว่าการตั้งค่าที่เก็บแพคเกจท้องถิ่น - และมีประโยชน์เพิ่มเติมของการเร่งความเร็วการเรียกดูเว็บทั่วไป


1

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


1

การใช้พื้นที่เก็บข้อมูลในเครื่องเป็นวิธีที่ดีที่สุดในการจัดการสิ่งที่อยู่บนเซิร์ฟเวอร์ในพื้นที่ของคุณ นอกจากนี้ยังช่วยให้คุณสามารถปรับใช้ backport ที่กำหนดเองหรือแพคเกจท้องถิ่นที่กำหนดเองได้อย่างง่ายดาย ฉันรู้จักกันในการทำ 'แพ็คเกจเมตา' ในท้องที่ซึ่งเป็นเพียงการอ้างอิงขนาดใหญ่เพื่อให้การติดตั้งในท้องถิ่นเป็นเรื่องง่าย (เช่น 'apt-get install local-mailserver') นี่เป็นผลข้างเคียงของการให้คุณเปลี่ยนการตั้งค่า (สำหรับการจัดการ config ที่ซับซ้อนคุณจะต้องมีหุ่นเชิด)


1

สำหรับกล่อง Windows ของเราเรามีเซิร์ฟเวอร์ WSUS ในพื้นที่และหน้าต่างมาตรฐานเพื่อใช้โปรแกรมแก้ไขรายเดือน สำหรับระบบ Linux (RHEL) เรามีเซิร์ฟเวอร์ดาวเทียม RHN ในวิทยาเขตที่ทุกแห่งเข้าร่วม ที่ให้แดชบอร์ดที่ดีของระบบที่เข้าร่วมทุกระบบที่คุณดูแลรวมถึงการอัปเดตที่ยังไม่ได้ใช้สำหรับแต่ละระบบ สำหรับผู้ที่อยู่ในรูปหุ่นกระบอกเราจะผลักดันสคริปต์ที่ใช้ชุดข้อมูลแก้ไขอัตโนมัติระหว่างหน้าต่างปกติและส่งการแจ้งเตือนทางอีเมลพร้อมผลการค้นหา


0

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

ในด้านของ Windows ฉันใช้Windows Server Update Servicesกับผลลัพธ์ที่น่าพึงพอใจมาก


0

เมื่อใช้ตัวจัดการแพคเกจเช่นความถนัดคุณจะเก็บประวัติการอัพเกรด / ติดตั้งและถ้าเป็นเช่นนั้นคุณจะทำอย่างไร?

apt เก็บ log ใน / var / log / apt /, และ dpkg ใช้ /var/log/dpkg.log โดยเฉพาะอย่างยิ่ง dpkg แยกวิเคราะห์ได้ค่อนข้าง


0

ใน OpenSuSE Linux, SLES และ Novell OES (ผลิตภัณฑ์ที่ใช้ SuSE ทั้งหมด) เรามีสคริปต์ที่รัน zypper และค้นหาแพ็คเกจที่ต้องได้รับการอัปเดต เมื่อพบหนึ่งรายการจะส่งตั๋วให้กับ JIRA และกำหนดให้กับ sysadmins เมื่อเราติดตั้งการอัปเดตเราจะปิดตั๋วซึ่งจะทิ้งร่องรอยการตรวจสอบที่บอกเราว่ามีการติดตั้งและเมื่อใด สิ่งนี้สามารถกระทบยอด / ยืนยันด้วยบันทึก zypper และ sudo ซึ่งรวมศูนย์ไว้ที่เซิร์ฟเวอร์ syslogging

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