พ่อครัวหนึ่งคนเพื่อปกครองพวกเขาทั้งหมด


10

ฉันกำลังมองหาพ่อครัวเพื่อทำการปรับใช้ Magento โดยอัตโนมัติ - ทั้งตัวเลือกโฮสติ้ง Magento มาตรฐานรวมถึงสภาพแวดล้อมเช่น EC2 ฉันไปรอบ ๆ และฉันเห็นสูตรอาหารต่าง ๆ มากมาย แต่ไม่มีใครทำให้ฉันเป็นที่ยอมรับได้ มีสคริปต์พ่อครัวโดยเฉพาะที่ดีกว่า / ดีที่สุดหรือไม่ นอกจากนี้หากคุณเคยใช้งาน PHP กับพ่อครัวมาก่อนสิ่งใดที่คุณต้องการให้คุณรู้เมื่อคุณเริ่มใช้งาน


2
ฉันหวังว่าฉันจะรู้ว่าAnsible ( ansible.com/home ) มีอยู่จริง
Reid Blomquist

บางทางเลือกอื่น ๆ ถ้าคุณสนใจsaltstack.comและdocker.com ทั้งคู่ดูสดใส แต่ฉันก็ไม่มีโอกาสได้ทำงานด้วยเหมือนกัน
beeplogic

1
ฉันได้ทดลองกับ capistrano-ash: github.com/augustash/capistrano-ash
pzirkind

ฉันคิดว่าเรดกำลังทำอะไรบางอย่างอลันอีก: Ansible ไม่ต้องใช้ตัวแทน (ทำงานกับ ssh + keys) เพื่อติดตั้งบนไคลเอนต์มันเป็นระบบที่มีการประกาศดังนั้นมันจึงเป็น idempotent และโดยทั่วไปฉันพบว่าการใช้มันทำให้ฉันด้วย "ทำสิ่งหนึ่งทำได้ง่ายๆ และทำได้ดี "ความรู้สึกเหมือนยูนิกซ์เมื่อเทียบกับระบบที่แข็งแกร่งกว่าเช่นเชฟหุ่นเชิดและเกลือ เป็นเวลานานแล้วหรือที่คุณโพสต์สิ่งนี้ความคิดของคุณหลังจากทำงานกับพ่อครัวมานานแล้ว?
Bryan 'BJ' Hoffpauir Jr.

คำตอบ:


6

แทบเป็นไปไม่ได้เลยที่จะมีชุดคำสั่งขนาดเดียวที่เหมาะกับทุกคน ผมเคยประสบความสำเร็จในการเขียนสคริปต์ทุบตีที่รันวิ่งอยู่ในรายชื่อของโฮสต์ที่ให้บริการโดยchef-client knife searchขั้นตอนมีลักษณะเช่นนี้ ...

โอเพ่นซอร์ส Chef Server 10.18.2 บน Ubuntu 12.04 LTS

  1. เริ่มต้นตัวแปร
  2. รับแฮชของการแก้ไขล่าสุดจาก GitHub สำหรับ $branch
  3. ปิดใช้งานการตรวจสอบความพร้อมใช้งานเพื่อป้องกันการแจ้งเตือนผ่านสถานะ HTTP 503
  4. สลับโฮสต์เว็บและยูทิลิตี้ทั้งหมดเป็นโหมดบำรุงรักษา
  5. ปรับใช้ยูทิลิตี้
    1. หยุด cron ของวีโอไอพีและคนงาน Resque ทั้งหมด
    2. การพึ่งพาระบบไฟล์ที่อยู่
    3. Chef ตรวจสอบการแก้ไขที่กำหนดเป็นรุ่นใหม่
    4. ที่อยู่ Magento ที่อยู่ (แพคเกจโมดูลระบบไฟล์สิทธิ์)
    5. อัพเดตภารกิจและสคริปต์ cron ทั้งหมดสำหรับระบบอัตโนมัติ
    6. ปรับใช้โมดูลทั้งหมด (ผู้แต่ง)
    7. ล้างแคชด้วย n98-magerun.phar
    8. เรียกใช้การย้ายข้อมูลใด ๆ ด้วย n98-magerun.phar
    9. เปิดใช้งาน cron Magento อีกครั้ง
    10. เริ่มงาน Resque
  6. ปรับใช้เว็บโฮสต์แรก
    1. การพึ่งพาระบบไฟล์ที่อยู่
    2. Chef ตรวจสอบการกำหนด$revisionเป็นรุ่นใหม่
    3. ที่อยู่ Magento ที่อยู่
    4. ปรับใช้โมดูล Magento ทั้งหมด
  7. ทำเครื่องหมายการปรับใช้ใหม่ใน New Relic
  8. เปิดใช้งานบริการตรวจสอบความพร้อมใช้งาน
  9. ปิดใช้งานบริการโหลดบาลานเซอร์กับโฮสต์เว็บอื่น ๆ ทั้งหมด
  10. ดำเนินการปรับใช้บนโฮสต์เว็บตามลำดับเพื่อให้ออนไลน์
  11. ดำเนินการตามปกติของ Chef สำหรับโฮสต์การค้นหา

ที่มา: https://gist.github.com/parhamr/6177160#file-2-deployment


4

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

ฉันลงเอยด้วยการไปที่ Puppet เพราะฉันพบว่ามีทรัพยากรมากขึ้นในเวลานั้นและรู้สึกง่ายกว่าที่จะรับฉัน

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

ฉันเริ่มต้นกระบวนการด้วยการเตรียมสภาพแวดล้อมการพัฒนาท้องถิ่นของทีม (กล่อง vargrant + เสมือน) สำหรับแต่ละบริการ / ส่วนประกอบฉันสร้างโมดูล: php5, apache2, redis, mysql ฯลฯ

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

ในขณะที่คุณกำลังดำเนินการและเขียนสูตร / แม่แบบของคุณคุณควรพิจารณาว่าจะนำมาใช้ซ้ำ / ทั่วไปได้อย่างไร อย่าเขียนโค้ดอย่างหนักเช่นพา ธ หรือผู้ใช้ / กลุ่มที่สามารถเปลี่ยนแปลงได้ระหว่าง distros / project / environment เนื่องจากคุณกำลังมองหาแนวทางทั่วไปฉันจะเดาว่ามีอุปสรรค์ใหญ่ ๆ ที่จะจัดการกับความแตกต่างระหว่างการแจกแจง * ระวัง

สิ่งสำคัญที่สุดคือรักษาง่าย ทำให้ส่วนที่สำคัญที่สุด / เสียเวลาโดยอัตโนมัติเป็นมาตรฐานของสภาพแวดล้อม ทำซ้ำพัฒนา

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