Wednesday, December 12, 2012

jenkins and puppet

Subject: jenkins and puppet

  • note: originally emailed 12/12/2012 and sanitized for public consumption
  • sidenote: posting here so i can lead people here whenever they ask me about this stuff...

Ok, here’s what I got from trying to figure out what Jenkins and Puppet is.

Starting with Puppet, from Puppet Labs:

At first, I thought they are something like building you own distro with a configurable ‘manifest’ (it kinda is).  But upon reading part 2 of their 'learning puppet' docs it finally became clear what puppet does (go figure that it was on the last page of their collection of docs:).

It basically describes the "agent" doing a pull-request from the "master" for work" – this is nothing more than:
  • Poll the server to find out what-to-do…

In a nutshell, this is a way to deploy a node (either natively or VM) like any other linux distro, but does have some interesting ways to configure/interface with cloud providers (like netflix’s asgard), see the node’s status, configurations (like openNMS/nagios) as well as updating/patching them (like rsync).

Again, the feature is the ability to run unit testing with the agent and master configuration.

Jenkins is a continuous integration server.  Basically, a 'build server' – which I believe is a must have for any projects that uses compilers.  Not quite so much for web based content though [using Jenkins, that is...].
  • However, the stuff that you plow into Jenkins is the same stuff I plow into a script file.
  • Put this together with a cronjob (or whatever periodic scheduler you like) and you have Jenkins.
    • which can have more [added tasks], customizations and logic plowed in there
    • and generate a results page

It doesn’t seem that Jenkins will run and do unit testing on the build’s executable.
  • But, this is where Puppet comes in.

No comments: