On 10/8/07, Brandorr <brandorr@xxxxxxxxxxxxxxx> wrote:
> I discovered Capistrano while I was trying to figure out what I
> wanted. See attached notes.
> http://www.genunix.org/wiki/index.php/GNOSIS/Kraken
Puppet and Capistrano fill two very different niche's. Capistrano is
essentially a mashup of Rake and SSH. It allows you to develop
recipes for dealing with executing commands on servers in parallel,
the canonical example being the deployment of a Rails application.
Capistrano *can* be used to automate standard systems administration
tasks (and some people do use it that way) but it's really no
different than what many systems administrators have been doing for
years with shell scripts and for loops.*
Puppet is a language for expressing your infrastructure in code.
Using Puppet's language, you define all the resources needed in your
infrastructure, and then apply those resources to individual nodes (or
servers.) Puppet makes your infrastructure more reliable, repeatable,
and documented.
We use Puppet and Capistrano both extensively in our consulting
practice. Puppet builds and manages the infrastructure (including the
things done when you can cap deploy:setup,) while Capistrano handles
the deployment of new code. (which it is pretty good at.)
When you add a tool like the soon-to-get-a-real-release iClassify, you
can integrate Puppet and Capistrano directly. It lets you organize
your systems with tags (that map to Puppet Classes), and Capistrano
queries it to set up the server roles.
For example, you might have a "database" puppet class that configures
a mysql server. It further might be a "master" or "slave", which maps
to the Capistrano :db role. We query iClassify with Capistrano,
asking for the database servers, and making the one that is your
master the :primary one.
Capistrano and Puppet go together like cheese and crackers.
Adam
--
HJK Solutions - We Launch Startups - http://www.hjksolutions.com
Adam Jacob, Senior Partner
T: (206) 508-4759 E: adam@xxxxxxxxxxxxxxxx
|
|