Puppet Class: cpanm
- Defined in:
- manifests/init.pp
Overview
Class: cpanm
Full description of class cpanm here.
Parameters
-
‘mirror`
A CPAN mirror to use to retrieve App::cpanminus. This is passed to ‘cpanm` as `–from`, meaning that only this mirror will be used.
Examples
Authors
James McDonald <james@jamesmcdonald.com>
Copyright
Copyright 2016-2017 James McDonald, unless otherwise noted.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'manifests/init.pp', line 34
class cpanm (
$mirror = undef,
$lwpbootstraparg = false,
){
if $::osfamily == 'RedHat' and $::operatingsystemmajrelease in ['6','7'] {
$packages = ['perl', 'make', 'gcc', 'perl-core']
} else {
$packages = ['perl', 'make', 'gcc']
}
ensure_packages($packages, { 'ensure' => 'present'})
file {'/var/cache/cpanm-install':
ensure => file,
source => 'puppet:///modules/cpanm/cpanm',
}
$from = $mirror ? {
undef => '',
default => "--from ${mirror}",
}
if ($lwpbootstraparg) {
$lwparg = '--no-lwp'
} else {
$lwparg = ''
}
exec {"/usr/bin/perl /var/cache/cpanm-install ${from} -n App::cpanminus ${lwparg}":
unless => '/usr/bin/test -x /usr/bin/cpanm -o -x /usr/local/bin/cpanm',
require => [File['/var/cache/cpanm-install'], Package['perl', 'gcc']],
}
}
|