bsupatch.pp 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. # == Define: wls::bsupatch
  2. #
  3. # installs bsu patch for weblogic
  4. #
  5. #
  6. # === Examples
  7. #
  8. # $jdkWls11gJDK = 'jdk1.7.0_09'
  9. # $wls11gVersion = "1036"
  10. #
  11. # case $operatingsystem {
  12. # centos, redhat, OracleLinux, Ubuntu, Debian: {
  13. # $osMdwHome = "/opt/oracle/wls/wls11g"
  14. # $osWlHome = "/opt/oracle/wls/wls11g/wlserver_10.3"
  15. # $user = "oracle"
  16. # $group = "dba"
  17. # }
  18. # windows: {
  19. # $osMdwHome = "c:/oracle/wls/wls11g"
  20. # $osWlHome = "c:/oracle/wls/wls11g/wlserver_10.3"
  21. # $user = "Administrator"
  22. # $group = "Administrators"
  23. # }
  24. # }
  25. #
  26. # wls::bsupatch{'p13573621':
  27. # mdwHome => $osMdwHome ,
  28. # wlHome => $osWlHome,
  29. # fullJDKName => $defaultFullJDK,
  30. # patchId => 'KZKQ',
  31. # patchFile => 'p13573621_1036_Generic.zip',
  32. # user => $user,
  33. # group => $group,
  34. # }
  35. ##
  36. define wls::bsupatch($mdwHome = undef,
  37. $wlHome = undef,
  38. $fullJDKName = undef,
  39. $patchId = undef,
  40. $patchFile = undef,
  41. $user = 'oracle',
  42. $group = 'dba',
  43. $downloadDir = '/install',
  44. $puppetDownloadMntPoint = undef,
  45. ) {
  46. case $operatingsystem {
  47. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES: {
  48. $execPath = "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/java/${fullJDKName}/bin"
  49. $path = $downloadDir
  50. Exec { path => $execPath,
  51. user => $user,
  52. group => $group,
  53. logoutput => true,
  54. }
  55. File {
  56. ensure => present,
  57. mode => 0775,
  58. owner => $user,
  59. group => $group,
  60. }
  61. }
  62. Solaris: {
  63. $execPath = '/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/jdk/${fullJDKName}/bin/amd64'
  64. $path = $downloadDir
  65. Exec { path => $execPath,
  66. user => $user,
  67. group => $group,
  68. logoutput => true,
  69. }
  70. File {
  71. ensure => present,
  72. mode => 0775,
  73. owner => $user,
  74. group => $group,
  75. }
  76. }
  77. windows: {
  78. $execPath = "C:\\oracle\\${fullJDKName}\\bin;C:\\unxutils\\bin;C:\\unxutils\\usr\\local\\wbin;C:\\Windows\\system32;C:\\Windows"
  79. $checkCommand = "C:\\Windows\\System32\\cmd.exe /c"
  80. $path = $downloadDir
  81. Exec { path => $execPath,
  82. }
  83. File { ensure => present,
  84. mode => 0555,
  85. }
  86. }
  87. }
  88. # check if the bsu already is installed
  89. $found = bsu_exists($mdwHome,$patchId)
  90. if $found == undef {
  91. $continue = true
  92. } else {
  93. if ( $found ) {
  94. $continue = false
  95. } else {
  96. notify {"wls::bsupatch ${title} ${mdwHome} does not exists":}
  97. $continue = true
  98. }
  99. }
  100. if ( $continue ) {
  101. if $puppetDownloadMntPoint == undef {
  102. $mountPoint = "puppet:///modules/wls/"
  103. } else {
  104. $mountPoint = $puppetDownloadMntPoint
  105. }
  106. if ! defined(File["${mdwHome}/utils/bsu/cache_dir"]) {
  107. file { "${mdwHome}/utils/bsu/cache_dir":
  108. ensure => directory,
  109. recurse => false,
  110. }
  111. }
  112. # the patch used by the bsu
  113. if ! defined(File["${path}/${patchFile}"]) {
  114. file { "${path}/${patchFile}":
  115. source => "${mountPoint}/${patchFile}",
  116. require => File ["${mdwHome}/utils/bsu/cache_dir"],
  117. }
  118. }
  119. $bsuCommand = "-install -patchlist=${patchId} -prod_dir=${wlHome} -verbose"
  120. case $operatingsystem {
  121. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  122. exec { "extract ${patchFile}":
  123. command => "unzip -n ${path}/${patchFile} -d ${mdwHome}/utils/bsu/cache_dir",
  124. require => File ["${path}/${patchFile}"],
  125. creates => "${mdwHome}/utils/bsu/cache_dir/${patchId}.jar",
  126. }
  127. exec { "exec bsu ux ${title}":
  128. command => "${mdwHome}/utils/bsu/bsu.sh ${bsuCommand}",
  129. require => Exec["extract ${patchFile}"],
  130. cwd => "${mdwHome}/utils/bsu",
  131. environment => ["USER=${user}",
  132. "HOME=/home/${user}",
  133. "LOGNAME=${user}"],
  134. }
  135. }
  136. windows: {
  137. exec {"icacls win patchfile ${title}":
  138. command => "${checkCommand} icacls ${mdwHome}/utils/bsu/cache_dir /T /C /grant Administrator:F Administrators:F",
  139. # unless => "${checkCommand} test -e ${mdwHome}/utils/bsu/cache_dir/${patchId}.jar",
  140. logoutput => false,
  141. require => File ["${path}/${patchFile}"],
  142. }
  143. exec { "extract ${patchFile} ${title}":
  144. command => "${checkCommand} unzip ${path}/${patchFile} -d ${mdwHome}/utils/bsu/cache_dir",
  145. creates => "${mdwHome}/utils/bsu/cache_dir/${patchId}.jar",
  146. require => Exec["icacls win patchfile ${title}"],
  147. }
  148. exec { "exec bsu win ${title}":
  149. command => "${checkCommand} bsu.cmd ${bsuCommand}",
  150. logoutput => true,
  151. require => Exec["extract ${patchFile} ${title}"],
  152. cwd => "${mdwHome}\\utils\\bsu",
  153. }
  154. }
  155. }
  156. }
  157. }