2009-07-20 37 views
76

Mục đích và chức năng của "vai trò" trong công thức Capistrano là gì? Khi tôi nhìn vào công thức nấu ăn mẫu, tôi thường nhìn thấy một cái gì đó như thế này:Chính xác "vai trò" trong Capistrano là gì?

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

Vì vậy, nó trông giống như một vai trò về cơ bản là một máy chủ nơi Capistrano thực thi lệnh. Nếu đó là trường hợp, thì tại sao nó sẽ được gọi là "vai trò" chứ không phải là "máy chủ" hoặc "máy chủ"?

Trong ví dụ trên, sự khác biệt giữa vai trò :app:web là gì?

Tùy chọn :primary => true làm gì?

Trả lời

60

Vai trò cho phép bạn viết nhiệm vụ bằng giọng nói chỉ áp dụng cho một số máy chủ nhất định. Điều này thực sự chỉ áp dụng cho các triển khai đa máy chủ. Vai trò mặc định của "ứng dụng", "web" và "db" cũng được sử dụng nội bộ, do đó sự hiện diện của chúng không phải là tùy chọn (AFAIK)

Trong mẫu bạn cung cấp, không có sự khác biệt về chức năng.

": primary => true" là thuộc tính cho phép chi tiết hơn trong việc chỉ định máy chủ trong tác vụ tùy chỉnh.

Dưới đây là một ví dụ về vai trò đặc điểm kỹ thuật trong một định nghĩa nhiệm vụ:

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

Xem website capistrano @https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role cho một lời giải thích bao quát hơn.

+2

Cũng lưu ý: dòng của bạn phải là ': only => {: primary => true}' Tôi nghĩ ... hoặc lệnh 'vai trò' trong câu hỏi nên sử dụng ': master => true' thay thế. Tôi tin rằng những thuộc tính này hoàn toàn tự do. –

3

Tùy chọn ": primary => true" cho biết máy chủ cơ sở dữ liệu là máy chủ chính. Điều này rất quan trọng khi bạn muốn sử dụng bản sao với MySQL, ví dụ. Nó cho phép bạn tạo một máy chủ cơ sở dữ liệu được nhân bản khác có thể được sử dụng để tự động chuyển đổi dự phòng. Nó cũng được sử dụng để quyết định máy chủ cơ sở dữ liệu nào sẽ di chuyển mô hình máy chủ (vì những thay đổi đó sẽ được nhân rộng đến các máy chủ chuyển đổi dự phòng). Liên kết này làm rõ thêm một chút: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration

Các vấn đề liên quan