2014-04-09 17 views
8

Tôi có một không gian tên và một vài nhiệm vụ trong không gian tên chạy sau khi triển khai: được cập nhật. Dưới đây là ví dụ:Làm cách nào để chạy tác vụ Capistrano dựa trên các thuộc tính môi trường hoặc máy chủ?

namespace :myservice do 
    task :start do 
    on roles(:app) do 
     sudo :start, "my/application" 
    end 
    end 
end 

Tôi muốn một trong các tác vụ này chỉ chạy trên một môi trường hoặc tài sản lưu trữ nhất định. Làm thế nào tôi có thể thực hiện điều này?

Tôi rất muốn có thể lọc trên môi trường như:

namespace :myservice do 
    task :start do 
    on roles(:app), env(:vagrant) do 
     sudo :start, "my/application" 
    end 
    end 
end 

cách tốt nhất để thực hiện điều này là gì?

+0

Bạn có nhận được một câu trả lời? – pjammer

+0

Xin lỗi, tôi chưa bao giờ tìm ra cách để làm điều này và không còn làm việc với Capistrano nữa. –

+0

@pjammer có thể xác minh câu trả lời bên dưới –

Trả lời

1

Có vẻ như sân khấu nhiều giai điệu sẽ giúp bạn. https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

Về cơ bản, bạn sẽ có một giai đoạn gọi vagrant nơi bạn có thể xác định các biến cấu hình, mà sau đó sẽ được tham chiếu bởi chính deploy.rb kịch bản của bạn (s) và hành động theo.

Dưới đây là một ví dụ về khái niệm,

# config/deploy/production.rb 
set :should_start_my_application, false 


# config/deploy/vagrant.rb 
set :should_start_my_application, true 


# config/deploy.rb 
namespace :myservice do 
    task :start do 
    on roles(:app) do 
     if should_start_application then 
     sudo :start, "my/application" 
     end 
    end 
    end 
end 
+0

Cảm ơn bạn đã dành thời gian trả lời yêu cầu cũ của tôi. Thật không may, tôi không còn làm việc với Ruby và Capistrano nữa nên tôi không thể thực sự kiểm tra điều này. Bạn có nghĩ rằng nó có ý nghĩa để đóng câu hỏi ban đầu của tôi hoặc chỉ để nó mở? Tôi cảm thấy tệ khi để nó mở ra vô thời hạn, đặc biệt là vì tôi ghét nhìn thấy cùng một loại câu hỏi về tràn bộ nhớ kéo dài mãi mãi. –

+0

Không có vấn đề gì, và đóng hoặc để nó hoạt động - nhưng tôi không chắc chắn 100% những gì hoạt động tốt nhất cho SO. –

+0

@pjammer có thể xác minh câu trả lời kể từ khi anh ấy hỏi vào tháng trước. –

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