gpt4 book ai didi

ruby-on-rails - 如何为 Capistrano 指定单独的应用程序和数据库服务器?

转载 作者:太空宇宙 更新时间:2023-11-03 18:02:25 25 4
gpt4 key购买 nike

我正在尝试将 Rails 应用程序部署到运行 Passenger 的 CentOS 服务器。 SVN 存储库和 MySQL 数据库分别托管在不同的机器上。 (换句话说,总共涉及三个独立的主机。)

这是我的 deploy.rb 文件(取自 Passenger docs ):

set :application, 'myapp'
set :repository, 'svn+ssh://user@svn_host.com/var/svn/myapp/trunk'

# Changed this to true because I do in fact use sudo.
set :use_sudo, true

set :deploy_to, "/opt/deployed_rails_apps/#{application}"

role :app, 'user@app_host.com'
role :web, 'user@app_host.com'

# Originally this had a "primary => true" option, but cap deploy:setup failed
# when that option was present.
role :db, 'user@db_host.com'

namespace :deploy do
task :start, :roles => :app do
run "touch #{current_release}/tmp/restart.txt"
end

task :stop, :roles => :app do
# Do nothing.
end

desc "Restart Application"
task :restart, :roles => :app do
run "touch #{current_release}/tmp/restart.txt"
end
end

cap deploy:setup 似乎成功了。至少没有错误。但是 cap deploy 失败了。有很多输出,但结果似乎是 Capistrano 正在尝试将我的应用程序部署到我为 :db 指定的“角色”——试图将应用程序部署到 DB 主持。

    servers: ["app_host.com", "db_host.com"]

...

 ** [db_host :: out] Permission denied, please try again.
** [db_host :: out] user@svn_host.com's password:

...

failed: "sh -c 'svn checkout -q  -r184 svn+ssh://user@svn_host.com/var/svn/myapp/trunk /opt/deployed_rails_apps/myapp/releases/20090720190553 && (echo 184 > /opt/deployed_rails_apps/myapp/releases/20090720190553/REVISION)'" on user@db_host.com

最佳答案

如果您不需要在数据库框中使用 Rails 代码,这是一个简单的解决方法 - 不要定义 :db 角色。

cap deploy 默认情况下将代码放在您定义的所有角色的所有框中。

关于ruby-on-rails - 如何为 Capistrano 指定单独的应用程序和数据库服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com