Files
puppetlabs-java/manifests/init.pp
2013-04-02 16:08:14 +01:00

117 lines
2.6 KiB
Puppet

# Class: java
#
# This module manages the Java runtime package
#
# Parameters:
#
# Actions:
#
# Requires:
#
# Sample Usage:
#
class java(
$distribution = 'jdk',
$version = 'present'
) {
validate_re($distribution, '^jdk$|^jre$|^java.*$')
validate_re($version, 'installed|^[._0-9a-zA-Z:-]+$')
anchor { 'java::begin': }
anchor { 'java::end': }
case $::osfamily {
'RedHat': {
if ($::operatingsystem == 'Fedora') {
$distribution_redhat = 'java'
} elsif ($::operatingsystem == 'Centos') {
case $::operatingsystemrelease {
'5.8': { $distribution_redhat = 'java-1.7.0-openjdk' }
'6.3': { $distribution_redhat = 'java-1.7.0-openjdk' }
default: { $distribution_redhat = $distribution }
}
} else {
$distribution_redhat = $distribution
}
class { 'java::package_redhat':
version => $version,
distribution => $distribution_redhat,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
'Debian': {
case $::lsbdistcodename {
squeeze, lucid: {
$distribution_debian = $distribution ? {
jdk => 'openjdk-6-jdk',
jre => 'openjdk-6-jre-headless',
}
}
wheezy, precise: {
$distribution_debian = $distribution ? {
jdk => 'openjdk-7-jdk',
jre => 'openjdk-7-jre-headless',
}
}
default: {
fail("operatingsystem distribution ${::lsbdistcodename} is not supported")
}
}
class { 'java::package_debian':
version => $version,
distribution => $distribution_debian,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
'Solaris': {
$distribution_solaris = $distribution ? {
jdk => 'developer/java/jdk-7',
jre => 'runtime/java/jre-7',
}
class { 'java::package_solaris':
version => $version,
distribution => $distribution_solaris,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
'Suse': {
$distribution_suse = $distribution ? {
jdk => 'java-1_6_0-ibm-devel',
jre => 'java-1_6_0-ibm',
}
class { 'java::package_suse':
version => $version,
distribution => $distribution_suse,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
default: {
fail("osfamily ${::osfamily} is not supported")
}
}
}