nodemanager.pp 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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. $listenAddress = undef,
  45. $user = 'oracle',
  46. $group = 'dba',
  47. $serviceName = undef,
  48. $logDir = undef,
  49. $downloadDir = '/install',
  50. $domain = undef,
  51. ) {
  52. if $version == "1111" {
  53. $nodeMgrHome = "${wlHome}/common/nodemanager"
  54. } elsif $version == "1212" {
  55. if $::override_weblogic_domain_folder == undef {
  56. $nodeMgrHome = "${wlHome}/../user_projects/domains/${domain}/nodemanager"
  57. } else {
  58. $nodeMgrHome = "${::override_weblogic_domain_folder}/domains/${domain}/nodemanager"
  59. }
  60. } else {
  61. $nodeMgrHome = "${wlHome}/common/nodemanager"
  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. backup => false,
  80. # mode => 0775,
  81. }
  82. }
  83. Solaris: {
  84. $otherPath = '/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:'
  85. $execPath = "/usr/jdk/${fullJDKName}/bin/amd64:${otherPath}"
  86. $checkCommand = "/usr/ucb/ps wwxa | grep -v grep | /bin/grep 'weblogic.NodeManager'"
  87. $JAVA_HOME = "/usr/jdk/${fullJDKName}"
  88. $nativeLib = "solaris/x64"
  89. Exec { path => $execPath,
  90. user => $user,
  91. group => $group,
  92. logoutput => true,
  93. cwd => $nodeMgrHome,
  94. }
  95. File{
  96. owner => $user,
  97. group => $group,
  98. backup => false,
  99. # mode => 0775,
  100. }
  101. }
  102. windows: {
  103. $execPath = "C:\\unxutils\\bin;C:\\unxutils\\usr\\local\\wbin;C:\\Windows\\system32;C:\\Windows"
  104. $checkCommand = "C:\\Windows\\System32\\cmd.exe /c"
  105. $JAVA_HOME = "C:\\oracle\\${fullJDKName}"
  106. Exec { path => $execPath,
  107. cwd => $nodeMgrHome,
  108. }
  109. File{
  110. owner => $user,
  111. group => $group,
  112. backup => false,
  113. # mode => 0775,
  114. }
  115. }
  116. }
  117. if $logDir == undef {
  118. $nodeLogDir = "${nodeMgrHome}/nodemanager.log"
  119. } else {
  120. # create all folders
  121. case $operatingsystem {
  122. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  123. if ! defined(Exec["create ${logDir} directory"]) {
  124. exec { "create ${logDir} directory":
  125. command => "mkdir -p ${logDir}",
  126. unless => "test -d ${logDir}",
  127. user => 'root',
  128. }
  129. }
  130. }
  131. windows: {
  132. $logDirWin = slash_replace( $logDir )
  133. if ! defined(Exec["create ${logDir} directory"]) {
  134. exec { "create ${logDir} directory":
  135. command => "${checkCommand} mkdir ${logDirWin}",
  136. unless => "${checkCommand} dir ${logDirWin}",
  137. }
  138. }
  139. }
  140. default: {
  141. fail("Unrecognized operating system")
  142. }
  143. }
  144. if ! defined(File["${logDir}"]) {
  145. file { "${logDir}" :
  146. ensure => directory,
  147. recurse => false,
  148. replace => false,
  149. require => Exec["create ${logDir} directory"],
  150. }
  151. }
  152. $nodeLogDir = "${logDir}/nodemanager.log"
  153. }
  154. # nodemanager is part of the domain creation
  155. if $version == "1212" {
  156. case $operatingsystem {
  157. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  158. if $::override_weblogic_domain_folder == undef {
  159. $domainsHome = "${wlHome}/../user_projects/domains"
  160. } else {
  161. $domainsHome = "${::override_weblogic_domain_folder}/domains"
  162. }
  163. exec { "startNodemanager 1212 ${title}":
  164. command => "nohup ${domainsHome}/${domain}/bin/startNodeManager.sh &",
  165. unless => "${checkCommand}",
  166. }
  167. exec { "sleep 20 sec for wlst exec ${title}":
  168. command => "/bin/sleep 20",
  169. subscribe => Exec ["startNodemanager 1212 ${title}"],
  170. refreshonly => true,
  171. }
  172. }
  173. windows: {
  174. service { "window nodemanager initial start ${title}":
  175. name => "Oracle Weblogic ${domain} NodeManager (${serviceName})",
  176. enable => true,
  177. ensure => true,
  178. }
  179. }
  180. }
  181. }
  182. elsif $version == "1111" {
  183. $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"
  184. case $operatingsystem {
  185. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  186. file { "nodemanager.properties ux ${title}":
  187. path => "${nodeMgrHome}/nodemanager.properties",
  188. ensure => present,
  189. replace => true,
  190. content => template("wls/nodemgr/nodemanager.properties.erb"),
  191. }
  192. exec { "exec ux nodemanager ${title}":
  193. command => "/usr/bin/nohup ${javaCommand} &",
  194. environment => ["CLASSPATH=${wlHome}/server/lib/weblogic.jar",
  195. "JAVA_HOME=${JAVA_HOME}",
  196. "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${wlHome}/server/native/${nativeLib}"],
  197. unless => $checkCommand,
  198. logoutput => true,
  199. require => File ["nodemanager.properties ux ${title}"],
  200. }
  201. exec { "sleep 5 sec for exec ${title}":
  202. command => "/bin/sleep 5",
  203. subscribe => Exec ["exec ux nodemanager ${title}"],
  204. refreshonly => true,
  205. }
  206. }
  207. windows: {
  208. exec {"icacls win nodemanager bin ${title}":
  209. command => "${checkCommand} icacls ${wlHome}\\server\\bin\\* /T /C /grant Administrator:F Administrators:F",
  210. unless => "${checkCommand} test -e ${nodeMgrHome}/nodemanager.properties",
  211. logoutput => false,
  212. }
  213. exec {"icacls win nodemanager native ${title}":
  214. command => "${checkCommand} icacls ${wlHome}\\server\\native\\* /T /C /grant Administrator:F Administrators:F",
  215. unless => "${checkCommand} test -e ${nodeMgrHome}/nodemanager.properties",
  216. logoutput => false,
  217. }
  218. exec { "exec win nodemanager ${title}":
  219. command => "${wlHome}\\server\\bin\\installNodeMgrSvc.cmd",
  220. environment => ["CLASSPATH=${wlHome}\\server\\lib\\weblogic.jar",
  221. "JAVA_HOME=${JAVA_HOME}"],
  222. require => [Exec ["icacls win nodemanager bin ${title}"],Exec ["icacls win nodemanager native ${title}"]],
  223. unless => "${checkCommand} test -e ${nodeMgrHome}/nodemanager.properties",
  224. logoutput => true,
  225. }
  226. file { "nodemanager.properties win ${title}":
  227. path => "${nodeMgrHome}/nodemanager.properties",
  228. ensure => present,
  229. replace => 'yes',
  230. content => template("wls/nodemgr/nodemanager.properties.erb"),
  231. require => Exec ["exec win nodemanager ${title}"],
  232. }
  233. service { "window nodemanager initial start ${title}":
  234. name => "Oracle WebLogic NodeManager (${serviceName})",
  235. enable => true,
  236. ensure => true,
  237. require => File ["nodemanager.properties win ${title}"],
  238. }
  239. }
  240. }
  241. }
  242. }