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

Deploying Rails Applications with Capistrano

Sep 11, 2014

Download

Technology

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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