Re: [Puppet Users] CPAN provider

Jonathan Gazeley
Fri, 18 Feb 2011 16:04:11 -0000

On 18/02/11 13:34, Jonathan Beckman wrote:
> I''m writing a CPAN package provider for puppet.
>
> Since the CPAN CLI is kinda sucky for this purpose I''ve written a
> wrapper around the CPAN.pm module in Perl. I''d like to have this
file
> installed on all systems, what would be the proper way to do this?

I''m interested in this too. We have a large Perl-based infrastructure
and we rely on a lot of modules from CPAN. Currently we don''t have a
proper and uniform way of ensuring that all systems receive the right
CPAN modules, other than manually installing them.

>
> The alternatives I found is(more are welcome):
> * Provisioning it through puppet?(prefered solution, no external deps)
>    * How do I do this properly for a package provider?

We haven''t tried any puppet-based solution yet...

>
> * Packaging it for systems(RHEL, Fedora, Debian, etc)...

We have trialled building CPAN modules as RPM packages for CentOS using
the "cpanspec" tool. This is being used on our dev machines and some
unimportant production machines. Unfortunately it often requires a
significant amount of manual intervention to make the RPM build cleanly,
and then time and effort spent updating the RPM each time there is a new
version published on CPAN. Because of the manual intervention, scripting
isn''t possible and with time, we need more and more CPAN modules so
this
isn''t a particularly scalable solution.

It''s a shame CPAN doesn''t also offer all of its content as an
RPM repo.

So, I''m interested in any effort to enable puppet to interact with CPAN
as easily as it can with yum, using a Package{} type for example. Or any
other way of somehow getting stuff from CPAN onto servers in a reliable
and easy way.

I''m a newbie at Ruby but happy to test and provide feedback on anyone
else''s Puppet modules. We are currently running Puppet on our fleet of
dev machines, which we hope will be ready for production by the new
academic year in September 2011. So, there is still plenty of time to
test alternative methods of getting Perl modules onto systems.

>
> Jonathan Beckman
>

 From one Jonathan to another...

Cheers,
Jonathan

----------------------------
Jonathan Gazeley
Systems Specialist
ResNet | Wireless & VPN Team
IT Services
University of Bristol
----------------------------