Capistrano vs Puppet

53 views
Skip to first unread message

Gerhardus Geldenhuis

unread,
Jan 22, 2009, 5:37:04 AM1/22/09
to Capistrano
Hi
vs might be a bit of a controversial term. I am really interested in
peoples opinions about the overlapping or symbiotic relationship
between capistrano and puppet. If you are using both tools, could you
expand on the relationship between the tools in your usage of them?

I have some thoughts on the subject but have on purpose not shared the
immediately as I feel that would be a leading question. :-)

Regards

Jonathan Share

unread,
Jan 22, 2009, 9:03:11 AM1/22/09
to capis...@googlegroups.com
2009/1/22 Gerhardus Geldenhuis <Gerhardus....@gmail.com>:

I view them as completely different tools for different tasks.

Puppet is a tool for configuring the server that my app runs on,
installing and configuring linux networking and user accounts, apache,
mysql and monitoring tools.

Capistrano is a tool for deploying my application to one or more
servers and scripting shell interactions with that application's
environment.

The only grey area is on direct project dependencies, my application
being a python app do I use setuptools (via capistrano) to install the
dependencies or do I use Puppet and debian's packaged version of those
same dependencies. But that's another holy war in itself :-)

To put it another way you could say that Puppet is for sysadmins,
Capistrano is for release managers.

David Grandinetti

unread,
Jan 22, 2009, 9:22:56 AM1/22/09
to capis...@googlegroups.com
Yeah, but what about deprec? That is using Capistrano to setup a lot
of the things that Puppet is meant for.

I see them more as tools that have the capability of playing together
nicely if you take a position on how you will use them in your
network. I currently use Puppet for the things that we have as
assumptions for our applications (assume that Java is installed, that
the smtp server is here, etc.) and Capistrano for managing the
specifics of our application. In practice, that means that Capistrano
is used for rolling out new versions of our app, and Puppet is used
for everything else.

I use Capistrano to bootstrap my new machines to the point where they
are puppet nodes. Once puppet is up and running, the puppet manifest
takes care of installing whatever else is needed. Then Capistrano is
used by our dev team to roll out the app.

-dave
-dave

--
David Grandinetti
We Go To 12
+1 315.569.2594
da...@wegoto12.com




Mike Bailey

unread,
Jan 22, 2009, 9:36:13 AM1/22/09
to capis...@googlegroups.com
I think Puppet and Capistrano are both great tools for service installation and configuration.

I don't know of anything Puppet does that I can't do with Capistrano. I install and configure all services on my servers using deprec[1], a rubygem with Capistrano recipes. There are many other gems out there that provide this sort of functionality (a recent one I found is ubuntu-machine[2]). Sprinkle[3] is an elegant bit of code for service provisioning (but it doesn't currently manage configuration).

I compile some services from source. The last time I checked Puppet did not provide this ability.

I think it comes down to personal choice. I chose Capistrano because I liked it and built on that. For others, Puppet may be a better fit.

- Mike

[1] http://www.deprec.org/
[2] http://suitmymind.github.com/ubuntu-machine/
[3] http://redartisan.com/2008/5/27/sprinkle-intro

David Masover

unread,
Jan 22, 2009, 3:57:28 PM1/22/09
to capis...@googlegroups.com
I'm an opinionated elitist, so my thoughts are:

I'm not entirely sure what Puppet uses to set up the cluster. However, Cap ssh's to each server, which is not scalable -- a few hundred brings it to its knees.

On the other hand, Cap defines a DSL in Ruby, whereas Puppet defines its own language for a less flexible config file.

PoolParty is the one that really looked interesting, but it's been awhile. Either way, I probably wouldn't mind using the Cap syntax, with some backend other than ssh.

Jamis Buck

unread,
Jan 22, 2009, 4:03:46 PM1/22/09
to capis...@googlegroups.com
On 1/22/09 1:57 PM, David Masover wrote:
> I'm an opinionated elitist, so my thoughts are:
>
> I'm not entirely sure what Puppet uses to set up the cluster. However,
> Cap ssh's to each server, which is not scalable -- a few hundred brings
> it to its knees.

For sure. Capistrano is definitely not intended to be used at that
scale. If someone were to find a (clean, maintainable) way to help cap
to scale that high, which didn't compromise the ease of use at smaller
scales, I'd be pleased to consider a patch, but I don't really intend to
do much work on my own to bring it to that level.

- Jamis

Reply all
Reply to author
Forward
0 new messages