We use Puppet and Mcollective to deploy the 30-40 components of our 
distributed architecture, with all code wrapped in a common packaging 
format (something we rolled in-house for our specific use case). Here's a 
quick overview of how it works:

Puppet has a concept of "facts" about each host, and you can write custom 
facts, which are just Ruby code that stores a key/value pair essentially. 
We have a fact that tracks the installed versions of all our code on a 
given box. So if package foo is installed, there will be a key/value of 
br_foo_version=2.3.25 or something.

When doing a deploy, we use Mcollective to make it immediate. Mcollective 
has a concept of filters, based on Puppet facts, which will limit the 
instances that an operation happens on. We have a package installation 
agent for Mcollective, so the process is to simply tell Mcollective, 
"Install foo version 2.3.30 on all boxes that have a br_foo_version of 
'.'," where the dot means any version. We use a Jenkins job to run this, so 
if someone does a build and checks the "deploy" box, if the build is 
successful we try to deploy.

This solution means we don't have to keep a master list of which packages 
go to which specific hosts. We also don't have to orchestrate ssh, track 
credentials for that, etc. You could do this using deb or rpm packages, 
there's nothing too special about our internal format. I'll probably write 
a blog post about this, with more detail and examples, pretty soon.

--
IRC: autojack

Twitter: literatesavant

My dev productivity blog: http://holisticqa.com

On Sunday, November 17, 2013 8:34:31 AM UTC-8, hrmohr wrote:
>
> How are you guys using Jenkins to handle the deployment of web apps? 
>
> I have tried the deploy plugin which uses cargo with some poor results. 
> The deploy fails too often and there’s that dreadful perm. gen. error. 
>
> I’m currently using an ant script that handles tomcat start/stop by ssh 
> and sftp to upload the web apps. It works just fine, but it’s a very 
> specific solution. 
>
> Is anyone here using LiveRebel or Puppet and such? If so, can you share 
> some words about it? 
>
> Cheers, Mads. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to