Upload
dimitris-tsironis
View
1.129
Download
0
Embed Size (px)
Citation preview
CAPISTRANOfor non-Rubyists
who we are
Dimitris Tsironis
Dr. John Pagonis
Dr. John Pagonis is onto something with Missum these days. You can follow him at @JohnPagonis and @MissumApp
Founder at Geembo, UI designer & huge geek, who loves good design and french fries, as much as good indentation in a stylesheet. Follow him @tsironakos and @geemboHQ
WHAT’S THE PROBLEM?
deploys can be a real mess
mistakes could happen very easily
you don’t mess with the production
you’re actually delaying bug fixes, new features etc.
one-click deploys!(well, almost)
is a language agnostic tool for remote application administration tasks
heavily used by Rails community
it’s for sysadmins and devops guys
it fits well with deploying web-apps
provisioning of infrastructure better handled with other tools, eg. Chef, Puppet, Babushka
how it worksunder the bo$et
philosophy
it runs on your computer
connects to the server over ssh
there is no Capistrano server or sth like that
automates the tasks you would manually do with command-line
philosophy part ii
uses a Ruby-based DSL for task automation
there are already ready-to-use tasks
cap shell offers an interactive prompt for adhoccommands
cap shell sessions are cached and can be reused
built-in tasks
It ships with plenty of stuff, by default
ready-to-use recipes
You can find plenty on Githubhttps://github.com/nesquena/cap-recipes
Ruby setup & RubyGems management
Apache & Phusion Passenger
Aptitude management
MongoDB
and much more!
custom tasks
Tailor-made Capistrano tasks are easy.
It’s all Ruby and Rake-like tasks, after all.
how to set it upprepare for the ba%le
set it up
you need a Capfile in the root of the project
then, you can execute capistrano tasks anywhere in your project’s folder, by running:
cap <task name>
rails-less deploy example
capify
Capify is a file generator for your project
usually used with Rails project but it works with other projects
in general, it can be enhanced to work with other structures
capify
One command to generate the files
Files you need
Capfile - basic Capistrano file in root of the project
config/deploy.rb - here’s where you write custom tasks
production or staging
config/deploy/production.rb
config/deploy/staging.rb
roles
allow you to write capistrano tasks that only apply to certain servers
then you can do something like this
configuration example
config/deploy.rb
custom tasks example
config/deploy.rb
RAILS-specific magictasks for Ruby on Rails only
asset precompile
PROBLEM
Asset precompile can be slow.
It could take several minutes that we could use to make a coffee
or watch some cats gifs
asset precompile
solution
Skip precompile, if it isn’t necessary
“The ability to destroy a planet is insignificant next to the power of Git”
--a tech-savvy Darth Vader
rails-specific magic
config/deploy.rb
Source: StackOverflow of course!
RESOURCES
Deploying with Capistrano - Github Helphttps://help.github.com/articles/deploying-with-capistrano
Capistrano Wikihttps://github.com/capistrano/capistrano/wiki
Capistrano Multistage extensionhttps://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension
Capistrano Handbook - still immaturehttps://github.com/leehambley/capistrano-handbook/blob/master/index.markdown
Capistrano Google Grouphttp://groups.google.com/group/capistrano
thank you!@JohnPagonis
@tsironakos@geemboHQ