javaexec.pp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. # jdk7::javaexec
  2. #
  3. # unpack the java tar.gz
  4. # set the default java links
  5. # set this java as default
  6. #
  7. define jdk7::javaexec (
  8. $path = undef,
  9. $fullVersion = undef,
  10. $javaHomes = undef,
  11. $jdkfile = undef,
  12. $cryptographyExtensionFile = undef,
  13. $alternativesPriority = undef,
  14. $user = undef,
  15. $group = undef,
  16. ) {
  17. # set the Exec defaults
  18. Exec {
  19. path => "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:",
  20. logoutput => true,
  21. user => $user,
  22. group => $group,
  23. }
  24. # set the defaults for File
  25. File {
  26. replace => false,
  27. owner => $user,
  28. group => $group,
  29. mode => 0755,
  30. }
  31. # check java install folder
  32. if ! defined(File['/usr/java']) {
  33. file { '/usr/java' :
  34. ensure => directory,
  35. }
  36. }
  37. # check java install folder
  38. if ! defined(File[$javaHomes]) {
  39. file { $javaHomes :
  40. ensure => directory,
  41. }
  42. }
  43. # extract gz file in /usr/java
  44. exec { "extract java ${fullVersion}":
  45. cwd => $javaHomes,
  46. command => "tar -xzf ${path}/${jdkfile}",
  47. creates => "${javaHomes}/${fullVersion}",
  48. require => File[$javaHomes],
  49. }
  50. # extract gz file in /usr/java
  51. if ( $cryptographyExtensionFile != undef ) {
  52. exec { "extract jce ${fullVersion}":
  53. cwd => "${javaHomes}/${fullVersion}/jre/lib/security",
  54. command => "tar -xzf ${path}/${cryptographyExtensionFile}",
  55. creates => "${javaHomes}/${fullVersion}/jre/lib/security/US_export_policy.jar",
  56. require => [File[$javaHomes],Exec["extract java ${fullVersion}"]],
  57. before => Exec["chown -R root:root ${javaHomes}/${fullVersion}"],
  58. }
  59. }
  60. # set permissions
  61. exec { "chown -R root:root ${javaHomes}/${fullVersion}":
  62. unless => "ls -al ${javaHomes}/${fullVersion}/bin/java | awk ' { print \$3 }' | grep root",
  63. require => Exec["extract java ${fullVersion}"],
  64. }
  65. # java link to latest
  66. file { '/usr/java/latest':
  67. ensure => link,
  68. target => "${javaHomes}/${fullVersion}",
  69. require => Exec["extract java ${fullVersion}"],
  70. }
  71. # java link to default
  72. file { '/usr/java/default':
  73. ensure => link,
  74. target => "/usr/java/latest",
  75. require => File['/usr/java/latest'],
  76. }
  77. case $osfamily {
  78. 'RedHat': {
  79. # set the java default
  80. exec { "default java alternatives ${fullVersion}":
  81. command => "alternatives --install /usr/bin/java java ${javaHomes}/${fullVersion}/bin/java ${alternativesPriority}",
  82. require => File['/usr/java/default'],
  83. unless => "alternatives --display java | /bin/grep ${fullVersion}",
  84. }
  85. }
  86. 'Debian', 'Suse':{
  87. # set the java default
  88. exec { "default java alternatives ${fullVersion}":
  89. command => "update-alternatives --install /usr/bin/java java ${javaHomes}/${fullVersion}/bin/java ${alternativesPriority}",
  90. require => File['/usr/java/default'],
  91. unless => "update-alternatives --list java | /bin/grep ${fullVersion}",
  92. }
  93. }
  94. default: {
  95. fail("Unrecognized osfamily ${::osfamily}, please use it on a Linux host")
  96. }
  97. }
  98. }