การปรับใช้แอปพลิเคชันด้วย Puppet


10

ฉันยังใหม่กับ Puppet และในขณะที่ฉันใช้ระบบ * nix มาหลายปีฉันก็ไม่เคยทำงานเป็นผู้ดูแลระบบหรือใน ops

ฉันกำลังเขียนรายการหุ่นกระบอกสำหรับโฮสต์ชุดของเว็บแอปพลิเคชัน (PHP / MySQL / MongoDB รหัสในคอมไพล์) Puppet ชัดเจนต้องมีความรู้เกี่ยวกับแอปพลิเคชันจริงเพราะฉันจะตั้งค่าโฮสต์เสมือนสำหรับแต่ละรายการ แต่ฉันไม่แน่ใจว่า Puppet ควรจัดการสิ่งต่าง ๆ เช่นการปรับใช้รหัสและการสร้างฐานข้อมูล

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


3
หากคุณกำลังจะทำสิ่งนี้ในภายหลังคำตอบทั้งหมดนั้นดีอย่าเพิ่งอ่านคำตอบที่ฉันเลือกเป็นคำตอบ
michaeltwofish

คำตอบ:


10

ฉันจะค้นหาCapistranoหรือFabricสำหรับการปรับใช้ ..

คุณจะสามารถควบคุมการปรับใช้ที่เกิดขึ้นกับเครื่องมือทั้งสองนี้ได้ดียิ่งขึ้น


ฉัน +1 คำตอบนี้เพราะได้คำตอบสองข้อ
François Beausoleil

ฉันขอขอบคุณพอยน์เตอร์ เรามีทับทิมอยู่ที่อื่นในกองซ้อนของเราดังนั้นฉันจะดูที่ Capistrano
michaeltwofish

9

Puppet ใช้สำหรับการปรับใช้ในองค์กรขนาดใหญ่หลายแห่ง แต่ก็ไม่ได้สมบูรณ์แบบเสมอไป ส่วนใหญ่ขึ้นอยู่กับวิธีการปรับใช้ของคุณ คุณกำลังปรับใช้กับเครื่องจักรจำนวนมากในครั้งเดียวหรือไม่? คุณนำการปรับใช้ไปใช้หรือไม่?

บางองค์กรใช้ Puppet โดยสร้างแพ็คเกจของการปรับใช้และจากนั้นให้บังคับใช้นโยบายให้เป็นรุ่นที่ถูกต้องของแพ็คเกจนั้น เนื่องจากหุ่นเชิดมีแนวคิดของสภาพแวดล้อมที่รวมอยู่ด้วยคุณจึงสามารถใช้สภาพแวดล้อมเพื่อทำการปรับใช้เป็นระยะ ๆ (เช่น dev, test, prod เป็นต้น)

องค์กรอื่น ๆ ใช้หุ่นเชิดเพื่อจัดการการปรับใช้โดยการปิด rsync, git checkout หรือสำเนาไฟล์แบบเรียกซ้ำโดยใช้หุ่นเชิด (แม้ว่ามันจะค่อนข้างช้า)

มีเครื่องมือที่ดีงามอื่น ๆ สำหรับการปรับใช้ด้วย ฉันเคยใช้ Whisky Disk ในอดีต (เป็นเครื่องมือทับทิมง่าย ๆ ) และชอบมันมาก

(ข้อจำกัดความรับผิดชอบฉันทำงานที่ Puppet Labs)


ขอบคุณ การปรับใช้คือเซิร์ฟเวอร์ที่สมดุลสองตัวซึ่งปัจจุบันใช้ rsync ด้วยตนเอง
michaeltwofish

4

หากคุณต้องการที่จะสร้างแพคเกจออกจากแอพลิเคชันของคุณคุณสามารถมองเข้าไปFPM รหัสบนGitHub


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

4

Puppet ไม่ใช่เครื่องมือที่เหมาะสมสำหรับการปรับใช้แอปพลิเคชันในความคิดของฉัน

ฉันใช้Jenkinsเพื่อสร้างและปรับใช้โค้ดของเราเพื่อทดสอบและจัดเตรียม

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

สำหรับแอปพลิเคชันของเราฉันได้กำหนดค่า Jenkins ด้วยPublish over SSHซึ่งคัดลอกไฟล์ WAR ที่สร้างเสร็จเรียบร้อยแล้วไปยังเซิร์ฟเวอร์ปลายทางจากนั้นเรียกใช้สคริปต์ซึ่งทำการสำรองและปรับใช้ หวังว่านี่จะช่วยได้!


เรากำลังใช้ Jenkins กับ CI ดังนั้นนี่จึงเป็นตัวเลือกที่น่าสนใจในการสำรวจขอบคุณ
michaeltwofish

2

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


1

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

http://rubyforge.org/projects/capistrano/

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