http://qs321.pair.com?node_id=1158604


in reply to cpan2rpm and Jenkins (not so perfect together?)

not a puppet user (cfengine shop here), but what we do is create our own repository of rpm packages and distribute the repo information to all clients, so you can just use yum install yourpackage from the cfengine policies. It should not be very different using puppet/ansible/whatever.

For creating repos we use mrepo (another battle tested tool) but many people use pulp or cobbler. You can even just use createrepo.

What we do in jenkins is clone the production nfs volume where the repo data lives, we update the repos in this clone which is offered to the test clients (so patches are first tested there), and if after x days everything is fine then the cloned nfs volume gets promoted to production nfs volume. We have Netapp filers but you can easily achieve this with any zfs enabled filer.

Replies are listed 'Best First'.
Re^2: cpan2rpm and Jenkins (not so perfect together?)
by blue_cowdawg (Monsignor) on Mar 23, 2016 at 11:31 UTC

    Yep, got that part down pat. And the creation of the repos is actually done by Puppet itself using a combination of the Exec type and a custom provider I cobbled together.

    I'm having trouble creating the RPMs from Jenkins using cpan2rpm. Running cpan2rpm from the command line as the Jenkins user works great but doing the same from a Jenkins job is crashing and burning without issuing good intel on why.

    I'm in the hopes somemonk has done this and figured out why this won't work inside a Jenkins job.


    Peter L. Berghold -- Unix Professional
    Peter -at- Berghold -dot- Net; Blog: http://blog.berghold.net Warning: No political correctness allowed.

      This isn't exactly an answer to your question, but I needed to use cpan2rpm a couple years ago and got pretty frustrated with it's limitations (doesn't work well with Module::Build modules was a big one). I ended up rewriting it (mine is called cpantorpm). It handles quite a few cases that cpan2rpm doesn't. It is NOT a drop-in replacement, but it may work where cpan2rpm doesn't (since I'm not a Jenkins user, I can't really say).

      Read about it here:CPANtoRPM