2014-06-16 16 views
10

Làm thế nào để bạn triển khai chỉ với một máy chủ với Capistrano v3? Tất cả các giải pháp mà tôi phát hiện có triển khai trên mọi máy chủ, vì vậy, tôi cho rằng chúng là dành cho v2.Làm thế nào để bạn triển khai chỉ với một máy chủ với Capistrano v3?

Tôi không muốn triển khai một giai đoạn, tôi đã sử dụng nhiều tầng và tôi muốn triển khai chỉ với một máy chủ ở một trong các giai đoạn.

+0

"Tất cả các giải pháp bạn tìm thấy" là gì? Vui lòng cung cấp một số gợi ý về những gì sẽ _not_ hoạt động để ngăn thời gian bị lãng phí cho các câu trả lời không hữu ích. –

+1

Có vẻ như bạn cần bộ lọc HOST và ROLE. Bạn đã thử như đã đề cập trong liên kết dưới đây chưa? http://capistranorb.com/documentation/advanced-features/role-filtering/ Câu hỏi tương tự cũng được tìm thấy trong liên kết sau: http://stackoverflow.com/questions/20783552/can-capistrano-v3-specify-hosts- in-command-line-like-v2-does? rq = 1 – leenasn

+0

Câu trả lời của tôi phù hợp với bạn? – gpupo

Trả lời

5

Như đã chỉ ra, trong Capistrano 3 cách triển khai các phần cụ thể của ứng dụng của bạn tới một máy chủ duy nhất đang sử dụng HOST filtering. Hãy tưởng tượng rằng bạn đang triển khai trực tiếp đến sản xuất và bạn phải cấu hình này trong config/deploy/production.rb

set :stage, :production 


server "webserver1.example.com”,   roles: [:web] 

server "appserver1.example.com",   roles: [:app]     
server "appserver2.example.com",   roles: [:app]     
server "appserver3.example.com",   roles: [:app]       

server “dbserver1.example.com”,   roles: [:db] 
server “dbserver2.example.com”,   roles: [:db] 


Sau đó, nếu bạn muốn triển khai chỉ để webserver1 của bạn, bạn chỉ cần chạy lệnh:

cap --hosts=webserver1.example.com production deploy 
+0

Tôi đang chạy cap --host = foo triển khai sản xuất và chưa, capistrano, vào cuối triển khai ứng dụng đường ray này, kết nối với thanh để chạy một số tác vụ và không thành công vì thư mục phát hành không tồn tại. – Pablo

1

Bạn phải sử dụng cài đặt nhiều tầng.

Capistrano 3.x là nhiều tầng theo mặc định.

Trong một giai đoạn của mình, bạn chỉ xác định máy chủ bạn muốn.

set :stage, :staging 

server 'staging.zodiacmedia.co.uk', roles: %w{web app db}, port: 22 

set :deploy_to, '/var/www/staging.example.com' 

Chạy lệnh:

cd /home/deploy/capistrano/example 
cap staging something:to:do 

tutorial Đây là cũ nhưng có thể giúp bạn.

+1

Tôi đã sử dụng nhiều tầng. Tôi không muốn triển khai một giai đoạn, tôi triển khai một máy chủ của nhiều máy chủ trong một trong các giai đoạn. – Pablo

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