Puppet: การจัดการ Apache VirtualHosts (มากมาย)


9

ฉันเรียนรู้วิธีของฉันผ่านการจัดการการกำหนดค่าโดยทั่วไปและการใช้หุ่นเชิดเพื่อนำไปใช้เป็นพิเศษ ฉันได้ทำการวิจัยทั่วไปแล้ว ( เช่นเดียวกับ SF ) และตอนนี้ฉันกำลังพิจารณา Apache VirtualHosts

เราโฮสต์เว็บไซต์LAMPจำนวนมาก(ปัจจุบันอยู่ในช่วงร้อย) บนสองระบบ: Apache2 / mod_phpหนึ่งและMySQLหนึ่ง - โดยทั่วไปแล้วตรงกันข้ามกับคำถามอื่นแล้วใน SFที่เขาจัดการเซิร์ฟเวอร์จำนวนมากที่มี vhosts ไม่กี่แต่ละ (ถ้า ไม่ใช่อันที่จริงฉันไม่รู้) ฉันยังไม่ได้รวบรวมหุ่นที่ใช้งานได้ แต่มันไม่น่าจะมีปัญหามีตัวอย่างมากมาย และสูตรอาหารอยู่ที่นั่น

นอกเหนือจากไฟล์กำหนดค่า apache ที่เห็นได้ชัด (ไม่มีปัญหาที่นี่ฉันเดา) ทุก vhost จะต้องมีบางไดเรกทอรีที่สร้างและตรวจสอบสิทธิ์ (เช่น. root dir สำหรับแต่ละ vhost มี documentroot, tmp dir โดยเฉพาะ, เฉพาะ ไฟล์เซสชัน php dir, อาจเป็นใบรับรอง SSL และอื่น ๆ ) บนเว็บเซิร์ฟเวอร์และผู้ใช้ + หนึ่งหรือมากกว่าหนึ่งฐานข้อมูลบนเซิร์ฟเวอร์ MySQL

การเพิ่ม vhost ใหม่จะต้องใช้ puppet ในการสร้างการลบออกจะต้องมี puppet เพื่อเรียกใช้สคริปต์ที่จะสำรองข้อมูลผู้ใช้และจากนั้นลบข้อมูลสดจากเซิร์ฟเวอร์ทั้งสอง แต่ทุกครั้งที่ตัวแทนหุ่นกระบอกจะตรวจสอบการมีอยู่ของ ไดเรกทอรี, db, การอนุญาต, เป็นต้น

ฉันกำลังถามปัญหาเมื่อไปถึง virtualhost หลายร้อยตัวด้วยการตรวจสอบทั้งหมดที่รันในทุก ๆ การทำงานของหุ่นเชิดโดยเฉพาะอย่างยิ่งระบบไฟล์ (บนเว็บเซิร์ฟเวอร์) และโดยเฉพาะอย่างยิ่งเมื่อในอนาคตระบบจะโหลดมากขึ้น? (สมมติว่าเรากำหนดเป้าหมายเว็บไซต์ 1000 ~ 2000 ช่วงเป็นจำนวนสูงสุดต่อเซิร์ฟเวอร์ที่เหมาะสม)

มีประสบการณ์ในการทำสิ่งนั้นบนอินเทอร์เน็ตไหม? ฉัน googled แต่ไม่พบอะไรเลยเพราะมีอัตราส่วนสัญญาณต่อสัญญาณรบกวนต่ำเมื่อค้นหา "puppet" และ "apache" ...

คำตอบ:


4

ฉันสงสัยว่าการจัดการโฮสต์เสมือน apache จำนวนมากจะไม่เป็นปัญหา แต่ฉันไม่สามารถพูดได้อย่างแน่นอน ประสิทธิภาพที่ยอมรับได้นั้นถูกกำหนดโดยความต้องการทางธุรกิจของคุณ มีเพียงคุณเท่านั้นที่สามารถตัดสินใจได้ว่ามันเร็วพอหรือไม่ นี่คือเธรดที่เหมาะสมเกี่ยวกับการลดโหลดของ CPU: https://groups.google.com/forum/?fromgroups#!topic/puppet-users/sxtMvCnKnys [1-25]

ในการสรุปเธรด:

  • เพิ่มความล่าช้าระหว่างการเรียกใช้ตัวแทนหุ่นเชิด
  • อย่ากำหนดเวลาหุ่นกระบอกและใช้การเตะแบบหุ่นเชิดหรือการรวบรวมเพื่อกระตุ้นการวิ่งเท่านั้น
  • กำหนดการเปลี่ยนแปลง Apache ให้เกิดขึ้นในบางช่วงเวลาเท่านั้น
  • ใช้สองสภาพแวดล้อมที่แตกต่างกัน (การบำรุงรักษาและการผลิต) เพื่อจัดการสิ่งต่าง ๆ รักษาน้ำหนักเบาในการผลิตและใช้การบำรุงรักษาเพื่อทำการเปลี่ยนแปลง

นี่คือตัวอย่างของการจัดการ apache Virtual Host จากเว็บไซต์ PuppetLabs: http://docs.puppetlabs.com/learning/definedtypes.html#an-example-apache-vhosts

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

ฉันสงสัยว่าคุณอยู่ในสถานการณ์ที่โฮสต์จำนวนมากเช่นเดียวกับ บริษัท เว็บโฮสติ้งดังนั้นฉันขอแนะนำว่าชื่อไซต์แต่ละไซต์จะไม่ถูกเข้ารหัสในรายการหุ่นกระบอกของคุณ สำหรับวันนี้ผมขอแนะนำให้ใช้ Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ Hiera ช่วยให้คุณใช้วิธีแยกในการจัดเก็บรายชื่อของโฮสต์เสมือนกับการแมปเซิร์ฟเวอร์จริง คุณสามารถใช้ไฟล์แฟลตหรือฐานข้อมูลกับ Hiera น่าเศร้าที่ฉันไม่รู้ Hiera เพียงพอที่จะแนะนำคุณเกี่ยวกับวิธีการตั้งค่าโครงสร้างข้อมูล Hiera หลายระดับที่คุณอาจต้องการ แต่อย่างน้อยฉันก็สามารถชี้คุณไปในทิศทางทั่วไปของ Hiera

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