18
http://www.flickr.com/photos/jsome1/2226394415 Deploying Rails applications with Deploying Rails applications with Capistrano Capistrano

Deploying Rails Applications with Capistrano

  • View
    1.826

  • Download
    5

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Deploying Rails Applications with Capistrano

http://www.flickr.com/photos/jsome1/2226394415

Deploying Rails applications withDeploying Rails applications with

CapistranoCapistrano

Page 2: Deploying Rails Applications with Capistrano

What is Capistrano?What is Capistrano?

http://www.flickr.com/photos/dionisio/2481071707

Page 3: Deploying Rails Applications with Capistrano

requirementsrequirements

Ruby + Rake SCM SSH

Page 4: Deploying Rails Applications with Capistrano

$ gem install capistrano

installationinstallation

Page 5: Deploying Rails Applications with Capistrano

assumptionsassumptions

● We are using SSH. Telnet and FTP are not supported

● Servers have POSIX-compatible shell

● SSH Keys configured

Page 6: Deploying Rails Applications with Capistrano

capificationcapification

$ cd my_app$ cap .

/my_app| - Capifile| - /config/deploy.rb

Page 7: Deploying Rails Applications with Capistrano

set :application, “siege”

set :repository, “[email protected]:m3nd3s/siege.git”

set :scm, :git

set :branch, “master”

set :ssh_options, { :forward_agent => true }

set :user, “giran”

set :deploy_to, “/home/giran/siege”

set :my_var, “Giran Siege”

configuration configuration 1/21/2

config/deploy.rb

Page 8: Deploying Rails Applications with Capistrano

role :web, “siege.giran.com.br”

role :app, “siege.giran.com.br”

role :db, “siege.giran.com.br”

configuration configuration 2/22/2

Page 9: Deploying Rails Applications with Capistrano

task :acceptance do

set :user, "root"

set :deploy_to, "/var/www/siege"

end

taskstasks

Page 10: Deploying Rails Applications with Capistrano

$ cap deploy:setup

# Or cascaded tasks

$ cap acceptance deploy:setup

setting upsetting up

Page 11: Deploying Rails Applications with Capistrano

[deploy_to]

[deploy_to]/releases

[deploy_to]/shared

[deploy_to]/shared/log

[deploy_to]/shared/pids

[deploy_to]/shared/system

structure structure

Page 12: Deploying Rails Applications with Capistrano

namespace :deploy do

task :database, :roles => :app do

run "cp #{deploy_to}/shared/database.yml #{current_path}/config/"

end

end

databasedatabase

● Database needs to be created

Page 13: Deploying Rails Applications with Capistrano

$ cap deploy

# Or cascaded tasks

$ cap acceptance deploy

deploydeploy

Page 14: Deploying Rails Applications with Capistrano

after :deploy, 'deploy:database'

namespace :deploy do

...

end

after and beforeafter and before

Page 15: Deploying Rails Applications with Capistrano

namespace :deploy do

task :restart, :roles => :app, :except => { :no_release => true } do

run "cd #{current_path} && touch tmp/restart.txt"

end

end

restartrestart

Page 16: Deploying Rails Applications with Capistrano

http://www.flickr.com/photos/mpawl/1572150843

Page 17: Deploying Rails Applications with Capistrano

referencesreferences

https://github.com/capistrano/capistrano/wiki/_pages

Page 18: Deploying Rails Applications with Capistrano

thank you !thank you !

Almir 'm3nd3s'Almir 'm3nd3s'@m3nd3s@m3nd3s

http://www.almirmendes.comhttp://[email protected]@giran.com.br

[email protected]@gmail.com

http://www.flickr.com/photos/meepfriends/2279161806