|
osdir.com mailing list archive F.A.Q. -since 2001! |
|
|
|
Subject: Re: Is Puppet similar to Capistrano? - msg#00073List: sysutils.puppet.user
by Date: Prev Next Date Index by Thread: Prev Next Thread Index
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
Thread at a glance:
Previous Message by Date:Is Puppet similar to Capistrano?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 seems promising. Thanks, Brian -- - Brian Gupta http://opensolaris.org/os/project/nycosug/ Next Message by Date:Re: Is Puppet similar to Capistrano?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 seems promising. I just read your wiki entry. You should consider contributing to Factor, for your system inventory needs. Puppet is a significant part of an open source data center management tool, and is a much better integration choice than cfengine (imnsho.) Having written two or three systems like the one you are describing in the past (including iClassify today) I suggest you do a few things: 1. You need to keep the schema flexible, since you never know what sort of thing people need to track. If you find yourself writing a new class for each entity you need to track in your datacenter (server, router, switch, rack, pdu, et al) then you're off track. 2. You need to allow for the expression of relationships between entities. For example, a server is in a rack. This is best done fairly loosely. iClassify doesn't do this at all right now, although I have some ideas about how it might. 3. Use a full text search engine like Xapian, Solr, Ferret or Lucene. One of these models used Xapian entirely, and had no relational database engine at all. Thus far, it remains my favorite of my implementations of this problem for flexibility. In the end, you can't beat saying "tags:database AND mysql-master:true", or "ipaddress:[192.168.1.0-192.168.10.0]". 4. As much as possible, entities need to be responsible for reporting in to the management system. They should push data to it, it should not be polling the entities for updates. (Where possible. Sometimes, you have to poll.) I could go on. :) There is lots of work going on in this space right now in the puppet community at large, and if would be excellent if it would include the work you are already planning for. Regards, Adam -- HJK Solutions - We Launch Startups - http://www.hjksolutions.com Adam Jacob, Senior Partner T: (206) 508-4759 E: adam@xxxxxxxxxxxxxxxx Previous Message by Thread:Is Puppet similar to Capistrano?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 seems promising. Thanks, Brian -- - Brian Gupta http://opensolaris.org/os/project/nycosug/ Next Message by Thread:Re: Is Puppet similar to Capistrano?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 seems promising. I just read your wiki entry. You should consider contributing to Factor, for your system inventory needs. Puppet is a significant part of an open source data center management tool, and is a much better integration choice than cfengine (imnsho.) Having written two or three systems like the one you are describing in the past (including iClassify today) I suggest you do a few things: 1. You need to keep the schema flexible, since you never know what sort of thing people need to track. If you find yourself writing a new class for each entity you need to track in your datacenter (server, router, switch, rack, pdu, et al) then you're off track. 2. You need to allow for the expression of relationships between entities. For example, a server is in a rack. This is best done fairly loosely. iClassify doesn't do this at all right now, although I have some ideas about how it might. 3. Use a full text search engine like Xapian, Solr, Ferret or Lucene. One of these models used Xapian entirely, and had no relational database engine at all. Thus far, it remains my favorite of my implementations of this problem for flexibility. In the end, you can't beat saying "tags:database AND mysql-master:true", or "ipaddress:[192.168.1.0-192.168.10.0]". 4. As much as possible, entities need to be responsible for reporting in to the management system. They should push data to it, it should not be polling the entities for updates. (Where possible. Sometimes, you have to poll.) I could go on. :) There is lots of work going on in this space right now in the puppet community at large, and if would be excellent if it would include the work you are already planning for. Regards, Adam -- HJK Solutions - We Launch Startups - http://www.hjksolutions.com Adam Jacob, Senior Partner T: (206) 508-4759 E: adam@xxxxxxxxxxxxxxxx
blog comments powered by Disqus
|
|