node.pp 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. # test
  2. #
  3. # one machine setup with weblogic 12.1.2
  4. # creates an WLS Domain with JAX-WS (advanced, soap over jms)
  5. # needs jdk7, orawls, orautils, fiddyspence-sysctl, erwbgy-limits puppet modules
  6. #
  7. node 'node1.example.com', 'node2.example.com' {
  8. include os,java, ssh, orautils
  9. include wls1036
  10. include maintenance
  11. include copydomain
  12. Class['os'] ->
  13. Class['ssh'] ->
  14. Class['java'] ->
  15. Class['wls1036'] ->
  16. Class['copydomain']
  17. }
  18. # operating settings for Middleware
  19. class os {
  20. notice "class os ${operatingsystem}"
  21. $default_params = {}
  22. $host_instances = hiera('hosts', [])
  23. create_resources('host',$host_instances, $default_params)
  24. exec { "create swap file":
  25. command => "/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=8192",
  26. creates => "/var/swap.1",
  27. }
  28. exec { "attach swap file":
  29. command => "/sbin/mkswap /var/swap.1 && /sbin/swapon /var/swap.1",
  30. require => Exec["create swap file"],
  31. unless => "/sbin/swapon -s | grep /var/swap.1",
  32. }
  33. #add swap file entry to fstab
  34. exec {"add swapfile entry to fstab":
  35. command => "/bin/echo >>/etc/fstab /var/swap.1 swap swap defaults 0 0",
  36. require => Exec["attach swap file"],
  37. user => root,
  38. unless => "/bin/grep '^/var/swap.1' /etc/fstab 2>/dev/null",
  39. }
  40. service { iptables:
  41. enable => false,
  42. ensure => false,
  43. hasstatus => true,
  44. }
  45. group { 'dba' :
  46. ensure => present,
  47. }
  48. # http://raftaman.net/?p=1311 for generating password
  49. # password = oracle
  50. user { 'wls' :
  51. ensure => present,
  52. groups => 'dba',
  53. shell => '/bin/bash',
  54. password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.',
  55. home => "/home/wls",
  56. comment => 'wls user created by Puppet',
  57. managehome => true,
  58. require => Group['dba'],
  59. }
  60. $install = [ 'binutils.x86_64','unzip.x86_64']
  61. package { $install:
  62. ensure => present,
  63. }
  64. class { 'limits':
  65. config => {
  66. '*' => { 'nofile' => { soft => '2048' , hard => '8192', },},
  67. 'wls' => { 'nofile' => { soft => '65536' , hard => '65536', },
  68. 'nproc' => { soft => '2048' , hard => '16384', },
  69. 'memlock' => { soft => '1048576', hard => '1048576',},
  70. 'stack' => { soft => '10240' ,},},
  71. },
  72. use_hiera => false,
  73. }
  74. sysctl { 'kernel.msgmnb': ensure => 'present', permanent => 'yes', value => '65536',}
  75. sysctl { 'kernel.msgmax': ensure => 'present', permanent => 'yes', value => '65536',}
  76. sysctl { 'kernel.shmmax': ensure => 'present', permanent => 'yes', value => '2588483584',}
  77. sysctl { 'kernel.shmall': ensure => 'present', permanent => 'yes', value => '2097152',}
  78. sysctl { 'fs.file-max': ensure => 'present', permanent => 'yes', value => '6815744',}
  79. sysctl { 'net.ipv4.tcp_keepalive_time': ensure => 'present', permanent => 'yes', value => '1800',}
  80. sysctl { 'net.ipv4.tcp_keepalive_intvl': ensure => 'present', permanent => 'yes', value => '30',}
  81. sysctl { 'net.ipv4.tcp_keepalive_probes': ensure => 'present', permanent => 'yes', value => '5',}
  82. sysctl { 'net.ipv4.tcp_fin_timeout': ensure => 'present', permanent => 'yes', value => '30',}
  83. sysctl { 'kernel.shmmni': ensure => 'present', permanent => 'yes', value => '4096', }
  84. sysctl { 'fs.aio-max-nr': ensure => 'present', permanent => 'yes', value => '1048576',}
  85. sysctl { 'kernel.sem': ensure => 'present', permanent => 'yes', value => '250 32000 100 128',}
  86. sysctl { 'net.ipv4.ip_local_port_range': ensure => 'present', permanent => 'yes', value => '9000 65500',}
  87. sysctl { 'net.core.rmem_default': ensure => 'present', permanent => 'yes', value => '262144',}
  88. sysctl { 'net.core.rmem_max': ensure => 'present', permanent => 'yes', value => '4194304', }
  89. sysctl { 'net.core.wmem_default': ensure => 'present', permanent => 'yes', value => '262144',}
  90. sysctl { 'net.core.wmem_max': ensure => 'present', permanent => 'yes', value => '1048576',}
  91. }
  92. class ssh {
  93. require os
  94. notice 'class ssh'
  95. file { "/home/wls/.ssh/":
  96. owner => "wls",
  97. group => "dba",
  98. mode => "700",
  99. ensure => "directory",
  100. alias => "wls-ssh-dir",
  101. }
  102. file { "/home/wls/.ssh/id_rsa.pub":
  103. ensure => present,
  104. owner => "wls",
  105. group => "dba",
  106. mode => "644",
  107. source => "/vagrant/ssh/id_rsa.pub",
  108. require => File["wls-ssh-dir"],
  109. }
  110. file { "/home/wls/.ssh/id_rsa":
  111. ensure => present,
  112. owner => "wls",
  113. group => "dba",
  114. mode => "600",
  115. source => "/vagrant/ssh/id_rsa",
  116. require => File["wls-ssh-dir"],
  117. }
  118. file { "/home/wls/.ssh/authorized_keys":
  119. ensure => present,
  120. owner => "wls",
  121. group => "dba",
  122. mode => "644",
  123. source => "/vagrant/ssh/id_rsa.pub",
  124. require => File["wls-ssh-dir"],
  125. }
  126. }
  127. class java {
  128. require os
  129. notice 'class java'
  130. $remove = [ "java-1.7.0-openjdk.x86_64", "java-1.6.0-openjdk.x86_64" ]
  131. package { $remove:
  132. ensure => absent,
  133. }
  134. include jdk7
  135. jdk7::install7{ 'jdk1.7.0_181':
  136. version => "7u181" ,
  137. fullVersion => "jdk1.7.0_181",
  138. alternativesPriority => 18000,
  139. x64 => true,
  140. downloadDir => hiera('wls_download_dir'),
  141. urandomJavaFix => true,
  142. sourcePath => hiera('wls_source'),
  143. }
  144. }
  145. class wls1036{
  146. class { 'wls::urandomfix' :}
  147. $jdkWls11gJDK = hiera('wls_jdk_version')
  148. $wls11gVersion = hiera('wls_version')
  149. $puppetDownloadMntPoint = hiera('wls_source')
  150. $osOracleHome = hiera('wls_oracle_base_home_dir')
  151. $osMdwHome = hiera('wls_middleware_home_dir')
  152. $osWlHome = hiera('wls_weblogic_home_dir')
  153. $user = hiera('wls_os_user')
  154. $group = hiera('wls_os_group')
  155. $downloadDir = hiera('wls_download_dir')
  156. $logDir = hiera('wls_log_dir')
  157. # set the defaults
  158. Wls::Installwls {
  159. version => $wls11gVersion,
  160. fullJDKName => $jdkWls11gJDK,
  161. oracleHome => $osOracleHome,
  162. mdwHome => $osMdwHome,
  163. user => $user,
  164. group => $group,
  165. downloadDir => $downloadDir,
  166. remoteFile => hiera('wls_remote_file'),
  167. puppetDownloadMntPoint => $puppetDownloadMntPoint,
  168. }
  169. Wls::Nodemanager {
  170. wlHome => $osWlHome,
  171. fullJDKName => $jdkWls11gJDK,
  172. user => $user,
  173. group => $group,
  174. serviceName => $serviceName,
  175. downloadDir => $downloadDir,
  176. }
  177. Wls::Bsupatch {
  178. mdwHome => $osMdwHome,
  179. wlHome => $osWlHome,
  180. fullJDKName => $jdkWls11gJDK,
  181. user => $user,
  182. group => $group,
  183. downloadDir => $downloadDir,
  184. puppetDownloadMntPoint => $puppetDownloadMntPoint,
  185. }
  186. # install
  187. wls::installwls{'11gPS5':
  188. createUser => false,
  189. }
  190. # weblogic patch
  191. ##wls::bsupatch{'p17071663':
  192. ## patchId => 'BYJ1',
  193. ## patchFile => 'p17071663_1036_Generic.zip',
  194. ## require => Wls::Installwls['11gPS5'],
  195. ##}
  196. #nodemanager configuration and starting
  197. wls::nodemanager{'nodemanager11g':
  198. listenPort => hiera('domain_nodemanager_port'),
  199. listenAddress => hiera('domain_node_address'),
  200. logDir => $logDir,
  201. ## require => Wls::Bsupatch['p17071663'],
  202. }
  203. orautils::nodemanagerautostart{"autostart ${wlsDomainName}":
  204. version => "1111",
  205. wlHome => $osWlHome,
  206. user => $user,
  207. logDir => $logDir,
  208. require => Wls::Nodemanager['nodemanager11g'];
  209. }
  210. }
  211. class copydomain {
  212. $wlsDomainName = hiera('domain_name')
  213. $adminListenPort = hiera('domain_adminserver_port')
  214. $nodemanagerPort = hiera('domain_nodemanager_port')
  215. $address = hiera('domain_adminserver_address')
  216. $userConfigDir = hiera('wls_user_config_dir')
  217. $jdkWls11gJDK = hiera('wls_jdk_version')
  218. $osOracleHome = hiera('wls_oracle_base_home_dir')
  219. $osMdwHome = hiera('wls_middleware_home_dir')
  220. $osWlHome = hiera('wls_weblogic_home_dir')
  221. $user = hiera('wls_os_user')
  222. $group = hiera('wls_os_group')
  223. $downloadDir = hiera('wls_download_dir')
  224. $logDir = hiera('wls_log_dir')
  225. # install domain
  226. wls::copydomain{'copyWlsDomain':
  227. version => '1111',
  228. wlHome => $osWlHome,
  229. mdwHome => $osMdwHome,
  230. fullJDKName => $jdkWls11gJDK,
  231. domain => $wlsDomainName,
  232. adminListenAdr => $address,
  233. adminListenPort => $adminListenPort,
  234. sshpass => false,
  235. wlsUser => hiera('wls_weblogic_user'),
  236. password => hiera('domain_wls_password'),
  237. user => $user,
  238. userPassword => 'oracle',
  239. group => $group,
  240. logDir => $logDir,
  241. downloadDir => $downloadDir,
  242. }
  243. }
  244. class maintenance {
  245. $osOracleHome = hiera('wls_oracle_base_home_dir')
  246. $osMdwHome = hiera('wls_middleware_home_dir')
  247. $osWlHome = hiera('wls_weblogic_home_dir')
  248. $user = hiera('wls_os_user')
  249. $group = hiera('wls_os_group')
  250. $downloadDir = hiera('wls_download_dir')
  251. $logDir = hiera('wls_log_dir')
  252. $mtimeParam = "1"
  253. cron { 'cleanwlstmp' :
  254. command => "find /tmp -name '*.tmp' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/tmp_purge.log 2>&1",
  255. user => $user,
  256. hour => 06,
  257. minute => 25,
  258. }
  259. cron { 'mdwlogs' :
  260. command => "find ${osMdwHome}/logs -name 'wlst_*.*' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/wlst_purge.log 2>&1",
  261. user => $user,
  262. hour => 06,
  263. minute => 30,
  264. }
  265. }