plnxtools/manifests/init.pp

82 lines
1.2 KiB
Puppet

#
# init.pp
#
class plnxtools(
$opt_dir = $plnxtools::params::opt_dir,
# a list of packages to install jdks
$jdks = $plnxtools::params::jdks,
# default JAVA_HOME
$java_home = $plnxtools::params::java_home,
)
inherits plnxtools::params{
file {"opt_dir":
path => $opt_dir,
ensure => directory
}->
file {"opt_dir_plnx":
path => "$opt_dir/plnxtools",
ensure => directory
}
#
# For most tools FreeBSD needs to bash installed
# accassible by /bin/bash
#
if $::osfamily == 'FreeBSD' {
package {"bash":
ensure => installed
} ->
file {"/bin/bash":
ensure => link,
target => "/usr/local/bin/bash"
}
}
package { $jdks:
ensure => installed
}
}
define plnxtools::install
(
$distfile,
$sourcedir,
$dirname,
$sourcefile="${sourcedir}/${distfile}",
$opt_dir = "/opt",
$checksum = undef,
$checksum_type = undef,
)
{
archive { "/tmp/$distfile":
ensure => present,
source => $sourcefile,
extract_path => $opt_dir,
extract => true,
cleanup => true,
checksum => $checksum,
checksum_type => $checksum_type,
creates => "${opt_dir}/${dirname}",
# require => [
# File['opt_dir']
# ]
} ->
file { "/opt/$title":
ensure => link,
target => "/opt/${dirname}",
}
}