nodemanager.pp 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. # == Define: wls::nodemanager
  2. #
  3. # install and configures nodemanager
  4. #
  5. #
  6. # === Examples
  7. #
  8. # $jdkWls12cJDK = 'jdk1.7.0_09'
  9. # $wls12cVersion = "1211"
  10. #
  11. #
  12. # case $operatingsystem {
  13. # centos, redhat, OracleLinux, ubuntu, debian: {
  14. # $osWlHome = "/opt/oracle/wls/wls12c/wlserver_12.1"
  15. # $user = "oracle"
  16. # $group = "dba"
  17. # }
  18. # windows: {
  19. # $osWlHome = "c:/oracle/wls/wls12c/wlserver_12.1"
  20. # $user = "Administrator"
  21. # $group = "Administrators"
  22. # $serviceName = "C_oracle_wls_wls12c_wlserver_12.1"
  23. # }
  24. # }
  25. #
  26. #
  27. # Wls::Nodemanager {
  28. # wlHome => $osWlHome,
  29. # fullJDKName => $jdkWls12cJDK,
  30. # user => $user,
  31. # group => $group,
  32. # serviceName => $serviceName,
  33. # }
  34. #
  35. # #nodemanager configuration and starting
  36. # wls::nodemanager{'nodemanager':
  37. # listenPort => '5556',
  38. # }
  39. #
  40. define wls::nodemanager($version = "1111",
  41. $wlHome = undef,
  42. $fullJDKName = undef,
  43. $listenPort = 5556,
  44. $user = 'oracle',
  45. $group = 'dba',
  46. $serviceName = undef,
  47. $logDir = undef,
  48. $downloadDir = '/install',
  49. $domain = undef,
  50. ) {
  51. if $version == "1111" {
  52. $nodeMgrHome = "${wlHome}/common/nodemanager"
  53. } elsif $version == "1212" {
  54. $nodeMgrHome = "${wlHome}/../user_projects/domains/${domain}/nodemanager"
  55. } else {
  56. $nodeMgrHome = "${wlHome}/common/nodemanager"
  57. }
  58. if $logDir == undef {
  59. $nodeLogDir = "${nodeMgrHome}/nodemanager.log"
  60. } else {
  61. $nodeLogDir = "${logDir}/nodemanager.log"
  62. }
  63. case $operatingsystem {
  64. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES: {
  65. $otherPath = '/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:'
  66. $execPath = "/usr/java/${fullJDKName}/bin:${otherPath}"
  67. $checkCommand = "/bin/ps -ef | grep -v grep | /bin/grep 'weblogic.NodeManager'"
  68. $JAVA_HOME = "/usr/java/${fullJDKName}"
  69. $nativeLib = "linux/x86_64"
  70. Exec { path => $execPath,
  71. user => $user,
  72. group => $group,
  73. logoutput => true,
  74. cwd => $nodeMgrHome,
  75. }
  76. File{
  77. owner => $user,
  78. group => $group,
  79. # mode => 0775,
  80. }
  81. }
  82. Solaris: {
  83. $otherPath = '/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:'
  84. $execPath = "/usr/jdk/${fullJDKName}/bin/amd64:${otherPath}"
  85. $checkCommand = "/usr/ucb/ps wwxa | grep -v grep | /bin/grep 'weblogic.NodeManager'"
  86. $JAVA_HOME = "/usr/jdk/${fullJDKName}"
  87. $nativeLib = "solaris/x64"
  88. Exec { path => $execPath,
  89. user => $user,
  90. group => $group,
  91. logoutput => true,
  92. cwd => $nodeMgrHome,
  93. }
  94. File{
  95. owner => $user,
  96. group => $group,
  97. # mode => 0775,
  98. }
  99. }
  100. windows: {
  101. $execPath = "C:\\unxutils\\bin;C:\\unxutils\\usr\\local\\wbin;C:\\Windows\\system32;C:\\Windows"
  102. $checkCommand = "C:\\Windows\\System32\\cmd.exe /c"
  103. $JAVA_HOME = "C:\\oracle\\${fullJDKName}"
  104. Exec { path => $execPath,
  105. cwd => $nodeMgrHome,
  106. }
  107. File{
  108. owner => $user,
  109. group => $group,
  110. # mode => 0775,
  111. }
  112. }
  113. }
  114. # nodemanager is part of the domain creation
  115. if $version == "1212" {
  116. case $operatingsystem {
  117. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  118. exec { "startNodemanager 1212 ${title}":
  119. command => "nohup ${wlHome}/../user_projects/domains/${domain}/bin/startNodeManager.sh &",
  120. unless => "${checkCommand}",
  121. }
  122. exec { "sleep 20 sec for wlst exec ${title}":
  123. command => "/bin/sleep 20",
  124. subscribe => Exec ["startNodemanager 1212 ${title}"],
  125. refreshonly => true,
  126. }
  127. }
  128. windows: {
  129. service { "window nodemanager initial start ${title}":
  130. name => "Oracle Weblogic ${domain} NodeManager (${serviceName})",
  131. enable => true,
  132. ensure => true,
  133. }
  134. }
  135. }
  136. }
  137. elsif $version == "1111" {
  138. if $logDir != undef {
  139. # create all folders
  140. case $operatingsystem {
  141. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  142. if ! defined(Exec["create ${logDir} directory"]) {
  143. exec { "create ${logDir} directory":
  144. command => "mkdir -p ${logDir}",
  145. unless => "test -d ${logDir}",
  146. user => 'root',
  147. }
  148. }
  149. }
  150. windows: {
  151. $logDirWin = slash_replace( $logDir )
  152. if ! defined(Exec["create ${logDir} directory"]) {
  153. exec { "create ${logDir} directory":
  154. command => "${checkCommand} mkdir ${logDirWin}",
  155. unless => "${checkCommand} dir ${logDirWin}",
  156. }
  157. }
  158. }
  159. default: {
  160. fail("Unrecognized operating system")
  161. }
  162. }
  163. if ! defined(File["${logDir}"]) {
  164. file { "${logDir}" :
  165. ensure => directory,
  166. recurse => false,
  167. replace => false,
  168. require => Exec["create ${logDir} directory"],
  169. }
  170. }
  171. }
  172. $javaCommand = "java -client -Xms32m -Xmx200m -XX:PermSize=128m -XX:MaxPermSize=256m -DListenPort=${listenPort} -Dbea.home=${wlHome} -Dweblogic.nodemanager.JavaHome=${JAVA_HOME} -Djava.security.policy=${wlHome}/server/lib/weblogic.policy -Xverify:none weblogic.NodeManager -v"
  173. case $operatingsystem {
  174. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  175. file { "nodemanager.properties ux ${title}":
  176. path => "${nodeMgrHome}/nodemanager.properties",
  177. ensure => present,
  178. replace => 'yes',
  179. content => template("wls/nodemgr/nodemanager.properties.erb"),
  180. }
  181. exec { "execwlst ux nodemanager ${title}":
  182. command => "/usr/bin/nohup ${javaCommand} &",
  183. environment => ["CLASSPATH=${wlHome}/server/lib/weblogic.jar",
  184. "JAVA_HOME=${JAVA_HOME}",
  185. "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${wlHome}/server/native/${nativeLib}"],
  186. unless => "${checkCommand}",
  187. require => File ["nodemanager.properties ux ${title}"],
  188. }
  189. exec { "sleep 5 sec for wlst exec ${title}":
  190. command => "/bin/sleep 5",
  191. subscribe => Exec ["execwlst ux nodemanager ${title}"],
  192. refreshonly => true,
  193. }
  194. }
  195. windows: {
  196. exec {"icacls win nodemanager bin ${title}":
  197. command => "${checkCommand} icacls ${wlHome}\\server\\bin\\* /T /C /grant Administrator:F Administrators:F",
  198. unless => "${checkCommand} test -e ${nodeMgrHome}/nodemanager.properties",
  199. logoutput => false,
  200. }
  201. exec {"icacls win nodemanager native ${title}":
  202. command => "${checkCommand} icacls ${wlHome}\\server\\native\\* /T /C /grant Administrator:F Administrators:F",
  203. unless => "${checkCommand} test -e ${nodeMgrHome}/nodemanager.properties",
  204. logoutput => false,
  205. }
  206. exec { "execwlst win nodemanager ${title}":
  207. command => "${wlHome}\\server\\bin\\installNodeMgrSvc.cmd",
  208. environment => ["CLASSPATH=${wlHome}\\server\\lib\\weblogic.jar",
  209. "JAVA_HOME=${JAVA_HOME}"],
  210. require => [Exec ["icacls win nodemanager bin ${title}"],Exec ["icacls win nodemanager native ${title}"]],
  211. unless => "${checkCommand} test -e ${nodeMgrHome}/nodemanager.properties",
  212. logoutput => true,
  213. }
  214. file { "nodemanager.properties win ${title}":
  215. path => "${nodeMgrHome}/nodemanager.properties",
  216. ensure => present,
  217. replace => 'yes',
  218. content => template("wls/nodemgr/nodemanager.properties.erb"),
  219. require => Exec ["execwlst win nodemanager ${title}"],
  220. }
  221. service { "window nodemanager initial start ${title}":
  222. name => "Oracle WebLogic NodeManager (${serviceName})",
  223. enable => true,
  224. ensure => true,
  225. require => File ["nodemanager.properties win ${title}"],
  226. }
  227. }
  228. }
  229. }
  230. }