การจัดการการอัพเกรดบนเซิร์ฟเวอร์ Debian หลายร้อยเครื่อง


20

คุณคิดว่าอะไรคือวิธีปฏิบัติที่ดีที่สุดในการรักษาเซิร์ฟเวอร์เดเบียนหลายสิบ (ถ้าไม่ใช่หลายร้อย) ให้เป็นปัจจุบัน? โปรดทราบว่า:

  • มีกลุ่มของเซิร์ฟเวอร์ (เช่น webservers ที่เหมือนกัน, เซิร์ฟเวอร์ DB, ... )
  • อาจมีปัญหา Debian หลายประการ (lenny, etch)
  • การใช้วนรอบเซิร์ฟเวอร์ทั้งหมดและทำการอัปเดต apt-get && อัพเกรดไม่เป็นที่ยอมรับ (เพราะมันเป็นสิ่งที่ฉันทำอยู่ในขณะนี้ :)) มันควรจะดีกว่านี้!

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

ขอบคุณล่วงหน้าชุมชนเซิร์ฟเวอร์ผิดพลาด!


1
มีเซิร์ฟเวอร์ในตัวเครื่องเดียวเพื่อเก็บแพ็คเก็ตล่าสุดและใช้เป็นที่เก็บ apt ซึ่งจะช่วยประหยัดแบนด์วิดท์และเวลาใช้ที่เก็บโลคัลของคุณเพื่อกระจายการอัพเดตไปยังเซิร์ฟเวอร์โลคัล โอ้และใช้ความถนัดแทนการฉลาด - รับ
Karolis T.

3
ใช่สำหรับกระจกเงาและไม่ถนัด วันนี้ไม่มีประโยชน์ มันไม่ได้มีพลังอำนาจเหนือวัวเลยแม้แต่น้อย
David Pashley

คำตอบ:


12

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


1
ผลิตภัณฑ์ที่น่าสนใจแม้ว่าฉันไม่เคยได้ยินมาก่อน
wzzrd

มันดีมาก! ฉันจะโปรโมตคำตอบนี้ถ้าคนฉลาดไม่ได้มีแพ็คเกจท้องถิ่นเพื่อติดตั้งในแต่ละโฮสต์ ... และฉันไม่เข้าใจว่าทำไมถึงจำเป็น
Falken

หลังจากการทดสอบเครื่องมือนี้ยอดเยี่ยมมาก! แต่มันใช้งานได้กับเซิร์ฟเวอร์หลายสิบไม่ใช่ร้อย เมื่อจัดการกับเครื่องจักรจำนวนมากมันกลายเป็นสิ่งที่ไม่สม่ำเสมอและช้า ... แย่มาก
Falken

1
ฉันโปรโมตคำตอบนี้เพราะในที่สุดฉันก็สามารถใช้งานได้ แต่โซลูชันอื่น ๆ ก็ค่อนข้างดีเช่นกันขึ้นอยู่กับความชอบ / สภาพแวดล้อมของคุณ!
Falken

2
มันเป็นตัวแทน ssh เริ่มต้นบน Ubuntu ที่ทำให้มันผิดทั้งหมด ฉันเพียงแค่ลบมันและใช้ง่าย "ssh-add" ความช้าทั้งหมดหายไป!
Falken

10

Google แก้ไขปัญหานี้ด้วย debmarshal:

http://code.google.com/p/debmarshal/

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

จากนั้นคุณสามารถเรียกใช้ cron-apt ในโหมดอัตโนมัติเต็มรูปแบบ

นี่คือวิดีโอแนะนำ:

http://www.youtube.com/watch?v=L3hRToC23mQ


3

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

ฉันไม่พอใจกับการอัพเกรดอัตโนมัติของสิ่งต่าง ๆ เช่น MySQL หรือ PostgreSQL ซึ่งการอัปเดตแบบสุ่มจะปิดบริการอาจอยู่ในช่วงกลางของวัน สิ่งเหล่านี้ยังคงต้องการการอัพเดทด้วยตนเอง

Spacewalk และ Debmarshall มีลักษณะเป็นทางเลือกที่เหมาะสมสำหรับโครงการหุ่นของเรา


ไม่มีความคิดเห็นเกี่ยวกับคำตอบเพียงแค่ "แฮปปี้ 10K วัน" ล่าช้า
Evan Anderson

1

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


1

ในทางของระบบการกำหนดค่าแบบดึงเช่น Puppet มี bcfg2 และ cfengine อย่างใดอย่างหนึ่งอาจตรงกับความต้องการของคุณ ตอนนี้ฉันกำลังเปิดตัว bcfg2 ในห้องแล็บของฉัน


1

การแก้ปัญหาสามารถได้รับจากfunc


ฉันจะไม่ทำ func เป็นวิธีที่ยังไม่บรรลุนิติภาวะสำหรับการใช้งานผลิตแม้ว่าฉันยอมรับว่ามันแสดงสัญญา
wzzrd

func ถูกใช้โดยพายผลไม้มันไม่ได้เป็น IMHO ที่ยังไม่บรรลุนิติภาวะ พายผลไม้เป็นผู้ใช้อย่างมากโดยผู้เชี่ยวชาญ RH และเทคโนโลยีเหล่านั้นจะรวมอยู่ในรุ่น RHEL ถัดไป มันยังไม่พร้อมสำหรับการผลิตอย่างเป็นทางการ แต่อาจจะใกล้เคียงกับความเป็นจริง
drAlberT

0

ฉันไม่แน่ใจว่าคุณคาดหวังวิธีการแก้ปัญหาประเภทใด คุณอาจรู้เกี่ยวกับงาน cron แต่ฉันจะไม่อัปเดตระบบในคนตาบอดเนื่องจากมีการแทรกแซงของมนุษย์ที่จำเป็น (และนั่นคือเหตุผลที่พวกเขาจ่ายเงินให้คุณทำเช่นนี้ใช่ไหม?)

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

บางทีถ้าคุณอธิบายว่าปัญหาคืออะไรด้วยการทำคำสั่ง apt-get เราจะเห็นสิ่งที่คุณต้องการหลีกเลี่ยง

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

ต่อไปนี้เป็นเคล็ดลับเกี่ยวกับวิธีลดจำนวนสิ่งที่คุณต้องอัปเดต

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

ตรวจสอบว่า source.list รวมเฉพาะที่เก็บข้อมูลที่คุณต้องการจริงๆ หากคุณทดลองใช้พื้นที่เก็บข้อมูลบางส่วนแล้วลืมไปเลยว่าคุณอาจนำเสนอสิ่งที่คุณไม่ต้องการหรือต้องการแก้ไข

หากคุณประสบปัญหากับการอัพเดทแบบสุ่มสี่สุ่มห้าบนเซิร์ฟเวอร์ที่ใช้งานจริงให้ระวังคำแนะนำการอัพเกรด Debian เมื่อมีการอัปเดตที่สำคัญ (4.0 ถึง 5.0) สิ่งเหล่านี้จะผ่านไปได้ด้วยดีหากคุณทำตามคำแนะนำการอัพเกรด มันไม่ง่ายอย่างที่เรียกใช้ apt-get dist-upgrade และ walk away บางครั้งในคำแนะนำมีแม้กระทั่งตัวชี้เมื่อเรียกใช้ความถนัดมากกว่า apt-get - มีความแตกต่างเล็กน้อยในพวกเขา


0

ตอนนี้คุณใช้เครื่องมือนี้ "เปลือกนักเต้น" หรือไม่? ฉันชอบมันและฉันจะใช้มัน แต่ฉันไม่รู้ว่าคุณสามารถใช้มันสำหรับโฮสต์จำนวนมากหรือไม่ บางทีคุณอาจลอง ...

http://www.netfort.gr.jp/~dancer/software/dsh.html.en

และเขาอยู่ในพื้นที่เก็บข้อมูล


-1

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

ฉันเคยใช้มันเพื่ออัพเกรด 25 webservers จากจำหลักเป็นเลนนี่ ทำงานเหมือนจับใจ

http://sourceforge.net/projects/clusterssh/


ตัวแทน SSH ตายจริงถ้าคุณลองทำสิ่งแปลก ๆ เช่นเชื่อมต่อกับ ~ 50 เครื่องในครั้งเดียว มิฉะนั้นฉันชอบ ClusterSSH แม้ว่ามันจะต้องมีการจัดกลุ่มในระดับอื่น
LapTop006

-1

ssh ของคลัสเตอร์เป็นคำแนะนำที่ดี

debmarshal ยังไม่ได้เป็นส่วนหนึ่งของ debian แต่ฉันไม่แน่ใจว่ามันจะเป็นแพ็คเกจ - ดูเหมือนว่าจะเป็นระบบที่แตกต่างอย่างสิ้นเชิงกับที่เก็บพิเศษ ดังที่ผู้พูดกล่าวว่าขณะนี้ผู้ใช้ไม่เป็นมิตรไม่เป็นมิตรกับผู้ใช้

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


-1 ไม่จริง: การอัปเดต RHN ไม่ได้เป็นไปโดยอัตโนมัติเว้นแต่คุณจะทำให้เป็นแบบอัตโนมัติ นอกเหนือจากนั้น: ในฐานะคนที่ใช้ RHN เป็นประจำทุกวันฉันยังไม่เห็นว่าจะมีปัญหากับฉันเลย
wzzrd

ฉันไม่ได้บอกว่า RHN เป็นไปโดยอัตโนมัติ แต่ถ้าคุณตั้งค่าการอัปเดตจาก RHN จะไม่มีการบอกเมื่อพวกเขากำลังจะเกิดขึ้นดังนั้นจึงรู้สึกเหมือนเดิม โชคที่ชัดเจนของคุณไม่ได้ยกเลิกประสบการณ์จริงของฉันเมื่อมันล้มเหลวและทำให้ผู้ใช้ไม่ได้รับบริการ แม้กระทั่งการปรับปรุงยำอาจล้มเหลว ใครก็ตามที่คิดว่าคุณสามารถอัปเดตและเดินออกไปได้จะไม่ระมัดระวังหรือไม่กังวลเพราะไม่ใช่เซิร์ฟเวอร์ที่ใช้งานจริง (การผลิต = มีลูกค้าที่ขึ้นอยู่กับบริการ)
ลาบราดอร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.