Wdrażanie aplikacji Ruby on Rails na serwer przy użyciu GIT, Capistrano, SSH

Jedyną rzeczą którą robimy na serwerze to nowe repozytorium oraz dodajemy swój klucz publiczny. Resztę na maszynie lokalnej.

Na serwerze np. w katalogu /home/uzytkownik/git robimy nowe repozytorium
$ mkdir domena.com.git
$ cd domena.com.git
$ git --bare init

Na localhoscie dodajemy informacje o lokalizacji zdalnego repozytorium
$ git remote add origin ssh://uzytkownik@serwer/~/git/domena.com.git

Następnie wysyłamy całe lokalne repozytorium na serwer
$ git push --all

Capistrano
$ capify .
Utworzone zostają pliki deploy.rb oraz Capfile

Należy poprawnie skonfigutować plik deploy.rb np.

set :rails_env, "production"
set :application, "tech.luczak.it"
set :user, 'wacaw'

set :ssh_options, { :forward_agent => true }
set :use_sudo, false

#
set :deploy_to, "/home/#{user}/www/#{application}/web"
set :scm, :git
set :repository, "file:///home/#{user}/git/#{application}.git"
set :local_repository, "file://."
set :branch, "master"
set :deploy_via, :remote_cache

role :web, application
role :app, application
role :db,  application, :primary => true

namespace :deploy do
desc "Restarting mod_rails with restart.txt"
task :restart, :roles => :app, :except => { :no_release => true } do
run "touch #{current_path}/tmp/restart.txt"
end
 [:start, :stop].each do |t|
desc "#{t} task is a no-op with mod_rails"
task t, :roles => :app do ; end
end
end
#
require "bundler/capistrano"

Inicjowanie capistrano
$ cap deploy:setup
Tworzone są takie katalogi jak releases i shared oraz symlink current

Deploy:
$ cap deploy

Migracja bazy danych
$ cap deploy:migrate

Ten wpis został opublikowany w kategorii Bez kategorii, Capistrano, GIT, Ruby on Rails 3. Dodaj zakładkę do bezpośredniego odnośnika.