すべてをセットアップし、無料利用枠でssh経由でサーバーに接続できます
今私のプロジェクトはどうすればサーバーファイルとデータベースをアップロードできますか?
ファイルをサーバーにデプロイするラバーなどのいくつかのgemがレールにあるようですが、変更をコミットできるようにgitを統合するにはどうすればよいですか?
すべてをセットアップし、無料利用枠でssh経由でサーバーに接続できます
今私のプロジェクトはどうすればサーバーファイルとデータベースをアップロードできますか?
ファイルをサーバーにデプロイするラバーなどのいくつかのgemがレールにあるようですが、変更をコミットできるようにgitを統合するにはどうすればよいですか?
ファイルのアップロードについては、 capistranoをチェックしてください。もう1つの人気のあるツールは、デプロイヤーのVladです。
deploy.rb
これは、現在1台のサーバーのみが必要なrails3アプリ(乗客を想定)の単純なものです(すべてを実際の値に置き換えます)。
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"
注:を実行する前に、デプロイユーザーの秘密キーとgithubに使用するキーをsshで追加する必要がありますcap deploy
。(例ssh-add ~/.ssh/id_dsa
)
cap deploy:migrations
データベースに関しては、を介してデプロイの一部として、またはを介して独立して移行を実行できますcap deploy:migrate
。役割を持つサーバーを必ずリストしてください:db
role :db, "<IP_OR_PUBLIC_DNS>", :primary => true
(注:これは、移行の実行に使用されるサーバーであり、実際のデータベースではありません。データベースはで指定する必要がありますdatabase.yml
)。
データベース自体のセットアップはこの回答の範囲を超えていますが、インスタンスで直接データベースを実行するか、AmazonのRDSを確認することができます。これは、セットアップが非常に簡単で、単一のデータベースで実行するデータベースよりも安定しています。実例。