Ruby on rails 在EC2上部署RubyonRails项目
我已经设置好了一切,我能够通过ssh在免费层上连接到服务器 现在我的项目是如何上传服务器文件和数据库 我看到rails中有一些gem,比如ruber,可以将文件部署到服务器上,但是如何集成git以便提交更改呢?代码 要上传文件,请签出。另一个流行的工具是 下面是一个简单的Ruby on rails 在EC2上部署RubyonRails项目,ruby-on-rails,git,deployment,amazon-ec2,Ruby On Rails,Git,Deployment,Amazon Ec2,我已经设置好了一切,我能够通过ssh在免费层上连接到服务器 现在我的项目是如何上传服务器文件和数据库 我看到rails中有一些gem,比如ruber,可以将文件部署到服务器上,但是如何集成git以便提交更改呢?代码 要上传文件,请签出。另一个流行的工具是 下面是一个简单的deploy.rb,用于rails3应用程序(假设乘客),它现在只需要一台服务器(用实际值替换所有服务器): (注意:这是将用于运行迁移的服务器,而不是实际的数据库。应该在数据库.yml中指定数据库) 设置数据库本身超出了这个答
deploy.rb
,用于rails3应用程序(假设乘客),它现在只需要一台服务器(用实际值替换所有服务器):
(注意:这是将用于运行迁移的服务器,而不是实际的数据库。应该在数据库.yml
中指定数据库)
设置数据库本身超出了这个答案的范围,但是您可以直接在实例上运行db,或者看看Amazon的RDS,它的设置非常简单,比在单个实例上运行db更稳定。您也可以通过
ssh\u options[:keys]
列出密钥,但我还没有完全测试过,所以没有把它包括在回复中。
require 'bundler/capistrano'
require 'capistrano_colors'
set :application, "<APP_NAME>"
set :repository, "git@github.com:<USER>/<PROJECT>.git"
set :branch, "master"
set :deploy_to, "/home/<DEPLOY_USER>/<APP_NAME>"
set :keep_releases, 3
set :scm, :git
set :user, "<DEPLOY_USER>"
set :use_sudo, false
set :deploy_via, :remote_cache
default_run_options[:pty] = true
default_run_options[:shell] = '/bin/bash -l'
ssh_options[:forward_agent] = true
role :web, "<IP_OR_PUBLIC_DNS>"
role :app, "<IP_OR_PUBLIC_DNS>"
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
after "deploy", "deploy:cleanup"
role :db, "<IP_OR_PUBLIC_DNS>", :primary => true