- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with cpan
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
Handle installations of cpan modules via puppet.
The cpan module sets up capn on a server
- cpan package.
- cpan configuration file.
All options and configuration can be done through interacting with the parameters on the cpan class and the cpan resource type. These are documented below.
class {'::cpan':
manage_config => true,
manage_package => true,
package_ensure => 'present',
installdirs => 'site',
local_lib => false,
config_hash => { 'build_requires_install_policy' => 'no' },
ftp_proxy => 'http://your_ftp_proxy.com',
http_proxy => 'http://your_http_proxy.com',
}
include '::cpan'
cpan { "Clone::Closure":
ensure => present,
require => Class['::cpan'],
force => true,
}
To avoid conflicts with in house package management, use:
class {'::cpan':
manage_package => false,
}
To control target installation path, use:
class {'::cpan':
installdirs => 'vendor',
}
Any of site
(default), perl
and vendor
are accepted.
To further control the location of installed modules, you can use local::lib:
cpan { 'Foo::Bar':
ensure => present,
local_lib => '/opt',
}
This will install the module into /opt
. Of course you need to adjust @INC
of your code in order to use that
new location, e.g. by using perl -Mlocal::lib=/opt myapp.pl
.
You can also define the default value of local_lib
for all cpan
resources:
Cpan { local_lib => '/opt' }
class {'::cpan':
ftp_proxy => 'http://your_ftp_proxy.com',
http_proxy => 'http://your_http_proxy.com',
}
- cpan: Main class for installation and service management.
- cpan::install: Handles package installation.
- cpan::params: Different configuration data for different systems.
- cpan::config: Handles the cpan service.
This module has been built on and tested against Puppet 3.x and Puppet 4.x
The module has been tested on:
- RedHat Enterprise Linux 6/7
- Debian 6/7
- CentOS 6/7
Testing on other platforms has been light and cannot be guaranteed.