【问题标题】:How do you deploy to only one server with Capistrano v3?如何使用 Capistrano v3 仅部署到一台服务器?
【发布时间】:2014-06-16 08:37:05
【问题描述】:

如何使用 Capistrano v3 仅部署到一台服务器?我在那里找到的所有解决方案都部署到每台服务器上,所以,我假设它们适用于 v2。

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

【问题讨论】:

标签: capistrano capistrano3


【解决方案1】:

正如所指出的,在 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

【讨论】:

  • 我正在运行 cap --host=foo 生产部署,然而,capistrano 在部署此 Rails 应用程序快要结束时连接到 bar 以运行某些任务并失败,因为发布目录不存在.
【解决方案2】:

您必须使用设置multistage。

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 是旧的,但可以帮助你。

【讨论】:

  • 我已经在使用多级了。我不想部署到一个阶段,我想部署到一个阶段中的多个服务器中的一台服务器。
猜你喜欢
  • 2017-12-27
  • 2011-01-07
  • 2014-05-26
  • 2023-04-09
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 2010-09-30
  • 2012-07-20
相关资源
最近更新 更多