“ บทบาท” ใน Capistrano คืออะไร?


86

วัตถุประสงค์และหน้าที่ของ "บทบาท" ในสูตรอาหาร Capistrano คืออะไร? เมื่อฉันดูสูตรอาหารตัวอย่างฉันมักจะเห็นสิ่งนี้:

role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db,  'somedomain.com', :primary => true

ดูเหมือนว่าโดยพื้นฐานแล้วบทบาทจะเป็นเซิร์ฟเวอร์ที่ Capistrano ดำเนินการคำสั่ง หากเป็นเช่นนั้นเหตุใดจึงเรียกว่า "บทบาท" แทนที่จะเป็น "โฮสต์" หรือ "เซิร์ฟเวอร์"

ในตัวอย่างข้างต้นความแตกต่างระหว่าง:appและ:webบทบาทคืออะไร?

อะไร:primary => trueตัวเลือกทำอย่างไร

คำตอบ:


67

บทบาทอนุญาตให้คุณเขียนงานคาปิสตราโนที่ใช้กับเซิร์ฟเวอร์บางเครื่องเท่านั้น สิ่งนี้ใช้ได้กับการปรับใช้หลายเซิร์ฟเวอร์เท่านั้น นอกจากนี้ยังมีการใช้บทบาทเริ่มต้นของ "app" "web" และ "db" ด้วยดังนั้นการแสดงตนจึงไม่เป็นทางเลือก (AFAIK)

ในตัวอย่างที่คุณให้มาไม่มีความแตกต่างในการทำงาน

": primary => true" เป็นแอตทริบิวต์ที่ช่วยให้สามารถระบุเซิร์ฟเวอร์ในงานที่กำหนดเองได้อย่างละเอียดยิ่งขึ้น

นี่คือตัวอย่างของข้อกำหนดบทบาทในนิยามงาน:

task :migrate, :roles => :db, :only => { :primary => true } do
  # ...
end

ดูเว็บไซต์ capistrano @ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Roleสำหรับคำอธิบายเพิ่มเติม


2
หมายเหตุ: บรรทัดของคุณควรเป็น:only => { :primary => true }ฉันคิดว่า ... หรือroleคำสั่งในคำถามควรใช้:master => trueแทน ฉันเชื่อว่าคุณลักษณะเหล่านี้เป็นรูปแบบอิสระทั้งหมด
docwhat

3

ตัวเลือก ": primary => true" ระบุว่าเซิร์ฟเวอร์ฐานข้อมูลเป็นเซิร์ฟเวอร์หลัก สิ่งนี้มีความสำคัญเมื่อคุณต้องการใช้การจำลองแบบกับ MySQL เช่น ช่วยให้คุณสร้างเซิร์ฟเวอร์ฐานข้อมูลมิเรอร์อื่นที่สามารถใช้สำหรับการเฟลโอเวอร์อัตโนมัติ นอกจากนี้ยังใช้สำหรับการตัดสินใจว่าเซิร์ฟเวอร์ฐานข้อมูลใดควรเรียกใช้การย้ายโมเดล (เนื่องจากการเปลี่ยนแปลงเหล่านั้นจะถูกจำลองแบบไปยังเซิร์ฟเวอร์เฟลโอเวอร์) ลิงค์นี้ให้ข้อมูลเพิ่มเติมอีกเล็กน้อย: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration

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