Câu hỏi Chính xác "vai trò" trong Capistrano là gì?


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 thấy một cái gì đó như thế này:

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áy chủ nơi Capistrano thực hiện 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 :app và :web vai trò?

Cái gì :primary => true tùy chọn làm gì?


76
2017-07-20 18:45


gốc




Các câu trả lời:


Vai trò cho phép bạn viết các tác vụ capistrano 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 trong 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 các tác vụ tùy chỉnh.

Đây là một ví dụ về đặc tả vai trò trong một định nghĩa nhiệm vụ:

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

Xem trang web capistrano @ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role để có giải thích rộng hơn.


61
2017-07-20 19:28



Cũng lưu ý: dòng của bạn nên :only => { :primary => true } Tôi nghĩ ... hoặc role lệnh 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. - docwhat


Tùy chọn ": primary => true" chỉ ra rằng 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


3
2017-08-15 10:02