การอัปเดตการผลิตของ Ubuntu จะทำเครื่องหมายที่ช่อง


25

บ่อยครั้งที่ฉันลงชื่อเข้าใช้งานกล่อง web / db / tools และดูข้อความทั่วไป:

สามารถอัพเดทได้ 30 แพ็คเกจ การอัปเดต 16 รายการเป็นการอัปเดตด้านความปลอดภัย

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

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

ฉันคิดว่าคำตอบสำหรับกระทู้เกี่ยวกับวิธีที่คุณจัดการการอัปเดตของคุณจะมีประโยชน์มาก

คำตอบ:


13

ไม่มีอะไรพิเศษเกี่ยวกับการติดตั้ง Ubuntu กับ Windows, RHEL, CentOS, SuSE, debian เป็นต้น

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

แนวทางพื้นฐานบางอย่างที่ฉันมักใช้เมื่อออกแบบการตั้งค่าแพทช์คือ:

  • ใช้ระบบโลคัลเสมอเพื่อรวมศูนย์ภายในเครือข่ายของคุณที่ติดตั้งแพตช์

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

  • เตรียมการติดตั้งล่วงหน้า - เมื่อเป็นไปได้ - บนเครื่อง

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

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

เพื่อให้สอดคล้องกับทฤษฎีพื้นฐานของฉันที่แพตช์หยุดพักสิ่งต่าง ๆ ตรวจสอบให้แน่ใจว่าคุณมีหน้าต่างดับเพื่อใช้แพตช์นานพอที่จะแก้ไขปัญหาที่สำคัญและอาจย้อนแพทช์กลับ คุณไม่จำเป็นต้องมีคนนั่งอยู่ที่นั่นหลังจากการทดสอบแพทช์ โดยส่วนตัวแล้วฉันใช้ระบบการตรวจสอบอย่างหนักเพื่อให้ฉันรู้ว่าทุกอย่างทำงานได้ในระดับต่ำสุดที่เราสามารถทำได้ แต่ก็ต้องเตรียมพร้อมสำหรับปัญหาที่จู้จี้เล็กน้อยที่จะถูกเรียกเข้าไปในขณะที่ผู้คนทำงาน คุณควรมีคนกำหนดไว้ให้พร้อมรับโทรศัพท์ - ไม่ควรเป็นคนที่แต่งตัวประหลาดจนถึงตี 3 ก็ได้

  • โดยอัตโนมัติให้มากที่สุด

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

  • มีหลายหน้าต่างในแต่ละเดือน

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

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


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

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

เท่าที่คุณต้องการ Windows กี่เดือน? ขึ้นอยู่กับสภาพแวดล้อมของคุณ คุณมีเซิร์ฟเวอร์กี่เครื่อง เวลาที่ต้องใช้ในการขึ้นลงของ severs คืออะไร?

สภาพแวดล้อมที่เล็กกว่าที่มีขนาด 9x5 อาจอยู่ห่างจากหน้าต่างปะต่อหนึ่งเดือน ร้านค้าขนาดใหญ่ 24x7 อาจต้องมีสองร้าน ขนาดใหญ่มาก 24x7x365 อาจต้องมีหน้าต่างกลิ้งทุกสัปดาห์เพื่อให้มีชุดเซิร์ฟเวอร์ที่แตกต่างกันในแต่ละสัปดาห์

ค้นหาความถี่ที่เหมาะกับคุณและสภาพแวดล้อมของคุณ

สิ่งหนึ่งที่ต้องจำไว้คือ 100% เป็นเป้าหมายที่เป็นไปไม่ได้ที่จะไปถึง - อย่าให้แผนกรักษาความปลอดภัยของคุณบอกคุณเป็นอย่างอื่น ทำอย่างดีที่สุดอย่าตกหลังไปไกลเกินไป


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

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

6

สิ่งที่ต้องทำ:

  1. ทำการสำรองข้อมูล
  2. ตรวจสอบให้แน่ใจว่าเป็นข้อมูลสำรองที่น่าประทับใจ (แม้ว่าทั้งสองนี้เป็นจุดทั่วไป)
  3. พยายามลดปริมาณการใช้งานให้ห่างจากกล่องผลิตขณะที่คุณอัพเกรด
  4. พยายามที่จะมีวิธีการเข้าถึงนอกย่านความถี่ในกรณีที่เกิดข้อผิดพลาดทั้งหมด, KVM, คอนโซลอนุกรม, การเข้าถึงในตัวเครื่องหรือมือจากระยะไกล
  5. ทดสอบบนเซิร์ฟเวอร์เดียวจากนั้นตรวจสอบให้แน่ใจว่าทุกอย่างใช้งานได้ก่อนที่จะนำการอัปเดตไปใช้กับเซิร์ฟเวอร์เพิ่มเติม
  6. ใช้หุ่นเชิดหากคุณสามารถมั่นใจได้ว่าหมายเลขเวอร์ชั่นเหมือนกันในหลาย ๆ เซิร์ฟเวอร์ (คุณสามารถใช้เพื่อบังคับให้อัพเกรด)
  7. บนเซิร์ฟเวอร์ทดสอบให้กำหนดเวอร์ชันของไฟล์ปรับเทียบกับไฟล์ใหม่ (ติดตั้งการอัปเดต) และตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดที่จะทำลายไฟล์ได้อย่างจริงจัง ฉันดูเหมือนจะจำ dpkg ถามก่อนติดตั้งเวอร์ชันใหม่ที่แตกต่างจากที่ติดตั้งในปัจจุบัน

สิ่งที่ต้องหลีกเลี่ยง:

  1. ทำการอัปเดตตอนเที่ยงของวันหรือ 09:00 น. ในเช้าวันจันทร์หรือ 17:00 ในบ่ายวันศุกร์! (ขอบคุณ @ 3influence!)
  2. การอัพเกรด MySQL บนเซิร์ฟเวอร์ฐานข้อมูลขนาดใหญ่มาก (การรีสตาร์ทอาจใช้เวลานาน)
  3. ทำเซิร์ฟเวอร์ทั้งหมดของคุณในครั้งเดียว (โดยเฉพาะเมล็ด)
  4. ทำทุกอย่างที่อาจเปลี่ยนแปลง / etc / เครือข่าย (เพราะคุณอาจขาดการเชื่อมต่อ)
  5. การอัปเดตอัตโนมัติที่สามารถทำได้ข้างต้นโดยที่คุณไม่ได้อยู่ที่นั่นเพื่อตรวจสอบทุกอย่างว่าใช้ได้

4
คุณลืม ... อย่าทำมันในวันศุกร์ในตอนท้ายของวันเว้นเสียแต่ว่าคุณจะไม่ให้ความสำคัญกับวันหยุดสุดสัปดาห์ของคุณ :)
3dinfluence

4

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


โปรดทราบว่าการอัปเดตบริการที่ทำงานอยู่จะต้องหยุดให้บริการนั้นในบางจุดเพื่อให้คุณได้รับบริการใหม่ ถึงกระนั้นคุณจะไม่ได้รับพรอมต์ที่น่ารำคาญทุก ๆ 10 นาที :)
gbjbaanb

ยูทิลิตี้ debian / ubuntu checkrestartนั้นมีประโยชน์อย่างมากในการพิจารณาว่ากระบวนการใดที่ได้รับการอัพเดต แต่ยังคงต้องหยุดและรีสตาร์ทเพื่อรับรหัสใหม่
thomasrutter

4

เครื่อง Ubuntu ของเราเปิดตัว LTS ทุกรุ่น

เราเพิ่งติดตั้งการอัปเดตทั้งหมดโดยอัตโนมัติ - ไม่เป็น "แนวปฏิบัติที่ดีที่สุด" แต่เราเป็นร้านค้าขนาดเล็กและไม่มีสภาพแวดล้อมการทดสอบ / พัฒนา / การผลิตสำหรับทุกบริการ การอัปเดต LTS โดยทั่วไปแล้วจะได้รับการทดสอบอย่างดีและมีการบุกรุกน้อยที่สุด

การอัพเกรดเป็นรีลีสใหม่นั้นมีส่วนเกี่ยวข้องมากกว่าเล็กน้อย


2

เราจัดการกับการอัปเดตวิธีต่อไปนี้สำหรับระบบ Ubuntu LTS:

  1. Maitain ชุดการทดสอบการยอมรับที่ตรวจสอบเส้นทางที่สำคัญทั้งหมดในซอฟต์แวร์ของเรา
  2. ติดตั้งการอัพเกรดด้านความปลอดภัยโดยไม่ต้องใส่เวลา 04.00 น. ทุกเช้าและทำการทดสอบการยอมรับทันที หากมีสิ่งใดล้มเหลววิศวกรจะได้รับการเพจและมีเวลาเหลือเฟือในการแก้ไขปัญหาหรือย้อนกลับก่อน 9.00 น. สิ่งนี้เกิดขึ้นเพียงสองครั้งในห้าปี - LTS ได้รับการทดสอบอย่างดีและมีเสถียรภาพ
  3. เราปรับใช้โครงสร้างพื้นฐานทั้งหมดของเราใหม่โดยอัตโนมัติทุกสัปดาห์ (บน digitalocean) ด้วยการปรับใช้สีน้ำเงิน / สีเขียวซึ่งทำให้แพ็คเกจทั้งหมดเป็นเวอร์ชันล่าสุด หากการปรับใช้ใหม่ล้มเหลวในการทดสอบการยอมรับการปรับใช้นั้นจะถูกพักไว้จนกว่าวิศวกรสามารถดีบักปัญหาได้

ขั้นตอนตรรกะถัดไปสำหรับเราคือการกำจัดข้อมูลเซสชันในหน่วยความจำเพื่อให้เราสามารถปรับใช้โครงสร้างพื้นฐานใหม่ทุกวันหรือแม้กระทั่งหลายครั้งต่อวันโดยไม่ส่งผลกระทบต่อลูกค้าและกำจัดขั้นตอน (2)

วิธีนี้เป็นการบำรุงรักษาต่ำและหลีกเลี่ยงหน้าต่างการบำรุงรักษาอย่างสมบูรณ์


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

0

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

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