ฉันคิดว่าคนอื่น ๆ อธิบายว่าทำไมฉันจะลองดูว่าจะทำยังไง ฉันคิดว่าด้วยความเข้าใจว่าบางคนอาจใช้หุ่นเชิดในการทำสิ่งที่คุณต้องการมันจะทำให้การตัดสินใจชัดเจนขึ้น
ทำกรณีพื้นฐานก่อน
โมดูลหุ่นกระบอกของคุณสำหรับ Apache ไม่ควรทำอะไรมากมายโดยค่าเริ่มต้น ติดตั้ง Apache กำหนดค่าให้เป็นมาตรฐานขั้นต่ำและเริ่มบริการ ใช้งานได้กับทุก distros ที่คุณต้องการสนับสนุน
เพิ่มความยืดหยุ่นที่สอง
เราจำเป็นต้องเพิ่ม vhosts คุณจะจบลงด้วยระบบที่สามารถวางไฟล์หรือลบออกจากชุดของ conf.d หรือ vhosts.d / ไดเรกทอรีตามสิ่งที่คุณต้องการ สิ่งเดียวกันกับการเปิดใช้งานหรือกำหนดค่าโมดูล
ใช้คลาสบทบาทหรือกลุ่มโฮสต์เพื่อเชื่อมต่อแบบเอกสารสำเร็จรูปเข้าด้วยกัน
ฉันคิดว่าวิธีที่ดีที่สุดในการใช้ Puppet คือเพื่อให้แน่ใจว่าเป็นสารเติมแต่ง ใช้ตัวอย่างข้างต้นเราควรมีโมดูลที่ทำ
- ติดตั้ง Apache
- ตั้งค่าพื้นฐาน
- เพิ่ม vhosts ให้กับ apache
- กำหนดการตั้งค่าพิเศษใด ๆ
- เริ่ม Apache
แทนที่จะโอเวอร์โหลดโมดูล Apache เริ่มต้นของเราเพื่อทำสิ่งที่เราต้องการสำหรับโฮสต์หรือกลุ่มเฉพาะเราควรจัดการนี่เป็นบทบาทหรือคลาสกลุ่มโฮสต์
class role::web_cust1 {
include apache
apache::vhost {'www.domain.com': }
apache::vhost {'www.domain2.com': priority => '99', }
include php
include php-fpm
include mysql
}
สารเติมแต่งอีกครั้ง
ใส่เคสพิเศษใน Hiera
ฉันเป็นแฟนตัวยงของการให้ Hiera ของ Puppet คิดว่ามันเป็นฐานข้อมูลสำหรับ Puppet เก็บบิตพิเศษไว้ หากโฮสต์หรือกลุ่มโฮสต์บางกลุ่มต้องการการตั้งค่าพิเศษอันดับแรกให้ใส่ค่าเริ่มต้นที่มีเหตุผลลงในโมดูลเพื่อให้ผู้ใช้ปกติไม่จำเป็นต้องรู้เกี่ยวกับมัน จากนั้นแทรกข้อมูลสำหรับโฮสต์หรือกลุ่มโฮสต์พิเศษเหล่านั้นเพื่อให้ Hiera สามารถส่งผ่านข้อมูลไปยัง Puppet ได้ตามต้องการ
กรณีการใช้งานของฉันคือพอร์ตฟัง เซิร์ฟเวอร์บางตัวมี Varnish หรือ haproxy ต่อหน้าพวกเขา โดยค่าเริ่มต้นโมดูลหุ่นกระบอกมี Apache ใช้พอร์ต 80 แต่ถ้า Hiera ค้นหาข้อมูลก็จะแทนที่ค่าเริ่มต้นนั้น