javaexec.pp 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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 javaexec (
  8. $path = undef,
  9. $fullVersion = undef,
  10. $jdkfile = undef,
  11. $alternativesPriority = undef,
  12. $user = undef,
  13. $group = undef,
  14. ) {
  15. # set the Exec defaults
  16. Exec {
  17. path => "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:",
  18. logoutput => true,
  19. user => $user,
  20. group => $group,
  21. }
  22. # set the defaults for File
  23. File {
  24. replace => false,
  25. owner => $user,
  26. group => $group,
  27. mode => 0755,
  28. }
  29. # check java install folder
  30. if ! defined(File["/usr/java"]) {
  31. file { "/usr/java" :
  32. ensure => directory,
  33. }
  34. }
  35. # extract gz file in /usr/java
  36. exec { "extract java ${fullVersion}":
  37. cwd => "/usr/java",
  38. command => "tar -xzf ${path}/${jdkfile}",
  39. creates => "/usr/java/${fullVersion}",
  40. require => File["/usr/java"],
  41. }
  42. # set permissions
  43. exec { "chown -R root:root /usr/java/${fullVersion}":
  44. unless => "ls -al /usr/java/${fullVersion}/bin/java | awk ' { print \$3 }' | grep root",
  45. require => Exec["extract java ${fullVersion}"],
  46. }
  47. # java link to latest
  48. file { '/usr/java/latest':
  49. ensure => link,
  50. target => "/usr/java/${fullVersion}",
  51. require => Exec["extract java ${fullVersion}"],
  52. }
  53. # java link to default
  54. file { '/usr/java/default':
  55. ensure => link,
  56. target => "/usr/java/latest",
  57. require => File['/usr/java/latest'],
  58. }
  59. case $osfamily {
  60. RedHat: {
  61. # set the java default
  62. exec { "default java alternatives ${fullVersion}":
  63. command => "alternatives --install /usr/bin/java java /usr/java/${fullVersion}/bin/java ${alternativesPriority}",
  64. require => File['/usr/java/default'],
  65. unless => "alternatives --display java | /bin/grep ${fullVersion}",
  66. }
  67. }
  68. Debian, Suse:{
  69. # set the java default
  70. exec { "default java alternatives ${fullVersion}":
  71. command => "update-alternatives --install /usr/bin/java java /usr/java/${fullVersion}/bin/java ${alternativesPriority}",
  72. require => File['/usr/java/default'],
  73. unless => "update-alternatives --list java | /bin/grep ${fullVersion}",
  74. }
  75. }
  76. }
  77. }