如何使用Capistrano v3仅部署到一台服务器?

时间:2014-06-16 08:37:05

标签: capistrano capistrano3

如何使用Capistrano v3仅部署到一台服务器?我在那里发现的所有解决方案都部署到每个服务器,因此,我认为它们适用于v2。

我不想部署一个阶段,我已经在使用多阶段,我想在其中一个阶段只部署到一台服务器。

2 个答案:

答案 0 :(得分:6)

正如所指出的,在Capistrano 3中,将应用程序的特定部分部署到单个服务器的方法是使用 HOST filtering 。让我们假设您直接部署到生产环境,并在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]


然后,如果您只想部署到webserver1,只需运行命令:

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

答案 1 :(得分:1)

您必须使用多级设置。

Capistrano 3.x默认为多级

在他的某个阶段中,您只定义所需的服务器。

set :stage, :staging

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

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

运行命令:

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

tutorial已过时但可能对您有帮助。