wcapp.pp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. # test
  2. #
  3. # one machine setup with weblogic 10.3.6 with BSU
  4. # needs jdk7, orawls, orautils, fiddyspence-sysctl, erwbgy-limits puppet modules
  5. #
  6. node 'wcapp.example.com' {
  7. include os, java, ssh, orautils
  8. include wls1036
  9. include wls1036_domain
  10. include maintenance
  11. Class['os'] ->
  12. Class['ssh'] ->
  13. Class['java'] ->
  14. Class['wls1036'] ->
  15. Class['wls1036_domain']
  16. }
  17. # operating settings for Middleware
  18. class os {
  19. notice "class os ${operatingsystem}"
  20. $default_params = {}
  21. $host_instances = hiera('hosts', {})
  22. create_resources('host',$host_instances, $default_params)
  23. exec { "create swap file":
  24. command => "/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=8192",
  25. creates => "/var/swap.1",
  26. }
  27. exec { "attach swap file":
  28. command => "/sbin/mkswap /var/swap.1 && /sbin/swapon /var/swap.1",
  29. require => Exec["create swap file"],
  30. unless => "/sbin/swapon -s | grep /var/swap.1",
  31. }
  32. #add swap file entry to fstab
  33. exec {"add swapfile entry to fstab":
  34. command => "/bin/echo >>/etc/fstab /var/swap.1 swap swap defaults 0 0",
  35. require => Exec["attach swap file"],
  36. user => root,
  37. unless => "/bin/grep '^/var/swap.1' /etc/fstab 2>/dev/null",
  38. }
  39. service { iptables:
  40. enable => false,
  41. ensure => false,
  42. hasstatus => true,
  43. }
  44. group { 'dba' :
  45. ensure => present,
  46. }
  47. # http://raftaman.net/?p=1311 for generating password
  48. # password = oracle
  49. user { 'oracle' :
  50. ensure => present,
  51. groups => 'dba',
  52. shell => '/bin/bash',
  53. password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.',
  54. home => "/home/oracle",
  55. comment => 'oracle user created by Puppet',
  56. managehome => true,
  57. require => Group['dba'],
  58. }
  59. $install = [ 'binutils.x86_64','unzip.x86_64']
  60. package { $install:
  61. ensure => present,
  62. }
  63. class { 'limits':
  64. config => {
  65. '*' => { 'nofile' => { soft => '2048' , hard => '8192', },},
  66. 'oracle' => { 'nofile' => { soft => '65536' , hard => '65536', },
  67. 'nproc' => { soft => '2048' , hard => '16384', },
  68. 'memlock' => { soft => '1048576', hard => '1048576',},
  69. 'stack' => { soft => '10240' ,},},
  70. },
  71. use_hiera => false,
  72. }
  73. sysctl { 'kernel.msgmnb': ensure => 'present', permanent => 'yes', value => '65536',}
  74. sysctl { 'kernel.msgmax': ensure => 'present', permanent => 'yes', value => '65536',}
  75. sysctl { 'kernel.shmmax': ensure => 'present', permanent => 'yes', value => '2588483584',}
  76. sysctl { 'kernel.shmall': ensure => 'present', permanent => 'yes', value => '2097152',}
  77. sysctl { 'fs.file-max': ensure => 'present', permanent => 'yes', value => '6815744',}
  78. sysctl { 'net.ipv4.tcp_keepalive_time': ensure => 'present', permanent => 'yes', value => '1800',}
  79. sysctl { 'net.ipv4.tcp_keepalive_intvl': ensure => 'present', permanent => 'yes', value => '30',}
  80. sysctl { 'net.ipv4.tcp_keepalive_probes': ensure => 'present', permanent => 'yes', value => '5',}
  81. sysctl { 'net.ipv4.tcp_fin_timeout': ensure => 'present', permanent => 'yes', value => '30',}
  82. sysctl { 'kernel.shmmni': ensure => 'present', permanent => 'yes', value => '4096', }
  83. sysctl { 'fs.aio-max-nr': ensure => 'present', permanent => 'yes', value => '1048576',}
  84. sysctl { 'kernel.sem': ensure => 'present', permanent => 'yes', value => '250 32000 100 128',}
  85. sysctl { 'net.ipv4.ip_local_port_range': ensure => 'present', permanent => 'yes', value => '9000 65500',}
  86. sysctl { 'net.core.rmem_default': ensure => 'present', permanent => 'yes', value => '262144',}
  87. sysctl { 'net.core.rmem_max': ensure => 'present', permanent => 'yes', value => '4194304', }
  88. sysctl { 'net.core.wmem_default': ensure => 'present', permanent => 'yes', value => '262144',}
  89. sysctl { 'net.core.wmem_max': ensure => 'present', permanent => 'yes', value => '1048576',}
  90. }
  91. class ssh {
  92. require os
  93. notice 'class ssh'
  94. file { "/home/oracle/.ssh/":
  95. owner => "oracle",
  96. group => "dba",
  97. mode => "700",
  98. ensure => "directory",
  99. alias => "oracle-ssh-dir",
  100. }
  101. file { "/home/oracle/.ssh/id_rsa.pub":
  102. ensure => present,
  103. owner => "oracle",
  104. group => "dba",
  105. mode => "644",
  106. source => "/vagrant/ssh/id_rsa.pub",
  107. require => File["oracle-ssh-dir"],
  108. }
  109. file { "/home/oracle/.ssh/id_rsa":
  110. ensure => present,
  111. owner => "oracle",
  112. group => "dba",
  113. mode => "600",
  114. source => "/vagrant/ssh/id_rsa",
  115. require => File["oracle-ssh-dir"],
  116. }
  117. file { "/home/oracle/.ssh/authorized_keys":
  118. ensure => present,
  119. owner => "oracle",
  120. group => "dba",
  121. mode => "644",
  122. source => "/vagrant/ssh/id_rsa.pub",
  123. require => File["oracle-ssh-dir"],
  124. }
  125. }
  126. class java {
  127. require os
  128. notice 'class java'
  129. $remove = [ "java-1.7.0-openjdk.x86_64", "java-1.6.0-openjdk.x86_64" ]
  130. package { $remove:
  131. ensure => absent,
  132. }
  133. include jdk7
  134. jdk7::install7{ 'jdk1.7.0_181':
  135. version => "7u181" ,
  136. fullVersion => "jdk1.7.0_181",
  137. alternativesPriority => 18000,
  138. x64 => true,
  139. downloadDir => hiera('wls_download_dir'),
  140. urandomJavaFix => true,
  141. sourcePath => hiera('jdk_source'),
  142. }
  143. }
  144. class wls1036{
  145. class { 'wls::urandomfix' :}
  146. $jdkWls11gJDK = hiera('wls_jdk_version')
  147. $wls11gVersion = hiera('wls_version')
  148. $puppetDownloadMntPoint = hiera('fmw_source')
  149. $puppetDownloadMntPointWC = hiera('wc_source')
  150. $puppetDownloadMntPointSOA = hiera('soa_source')
  151. $osOracleHome = hiera('wls_oracle_base_home_dir')
  152. $osMdwHome = hiera('wls_middleware_home_dir')
  153. $osWlHome = hiera('wls_weblogic_home_dir')
  154. $user = hiera('wls_os_user')
  155. $group = hiera('wls_os_group')
  156. $downloadDir = hiera('wls_download_dir')
  157. $logDir = hiera('wls_log_dir')
  158. # install
  159. wls::installwls{'11gPS6':
  160. version => $wls11gVersion,
  161. fullJDKName => $jdkWls11gJDK,
  162. oracleHome => $osOracleHome,
  163. mdwHome => $osMdwHome,
  164. user => $user,
  165. group => $group,
  166. downloadDir => $downloadDir,
  167. remoteFile => hiera('wls_remote_file'),
  168. puppetDownloadMntPoint => $puppetDownloadMntPoint,
  169. createUser => false,
  170. }
  171. # weblogic patch
  172. # wls::bsupatch{'p17071663':
  173. # mdwHome => $osMdwHome,
  174. # wlHome => $osWlHome,
  175. # fullJDKName => $jdkWls11gJDK,
  176. # user => $user,
  177. # group => $group,
  178. # downloadDir => $downloadDir,
  179. # puppetDownloadMntPoint => $puppetDownloadMntPoint,
  180. # patchId => 'BYJ1',
  181. # patchFile => 'p17071663_1036_Generic.zip',
  182. # remoteFile => hiera('wls_remote_file'),
  183. # require => Wls::Installwls['11gPS6'],
  184. # }
  185. # wls::installsoa{'soaPS6':
  186. # mdwHome => $osMdwHome,
  187. # wlHome => $osWlHome,
  188. # oracleHome => $osOracleHome,
  189. # fullJDKName => $jdkWls11gJDK,
  190. # user => $user,
  191. # group => $group,
  192. # downloadDir => $downloadDir,
  193. # puppetDownloadMntPoint => $puppetDownloadMntPointSOA,
  194. # soaFile1 => 'ofm_soa_generic_11.1.1.7.0_disk1_1of2.zip',
  195. # soaFile2 => 'ofm_soa_generic_11.1.1.7.0_disk1_2of2.zip',
  196. # remoteFile => hiera('wls_remote_file'),
  197. # # require => Wls::Bsupatch['p17071663'],
  198. # }
  199. # wls::opatch{'17014142_soa_patch':
  200. # fullJDKName => $jdkWls11gJDK,
  201. # user => $user,
  202. # group => $group,
  203. # downloadDir => $downloadDir,
  204. # remoteFile => hiera('wls_remote_file'),
  205. # puppetDownloadMntPoint => $puppetDownloadMntPoint,
  206. # oracleProductHome => "${osMdwHome}/Oracle_SOA1" ,
  207. # patchId => '17014142',
  208. # patchFile => 'p17014142_111170_Generic.zip',
  209. # require => Wls::Installsoa['soaPS6'],
  210. # }
  211. # webcenter
  212. wls::installwc{'wcPS7':
  213. mdwHome => $osMdwHome,
  214. wlHome => $osWlHome,
  215. oracleHome => $osOracleHome,
  216. fullJDKName => $jdkWls11gJDK,
  217. user => $user,
  218. group => $group,
  219. downloadDir => $downloadDir,
  220. puppetDownloadMntPoint => $puppetDownloadMntPointWC,
  221. remoteFile => hiera('wls_remote_file'),
  222. wcFile => 'ofm_wc_generic_11.1.1.7.0_disk1_1of1.zip',
  223. #require => Wls::Opatch['17014142_soa_patch'],
  224. }
  225. # webcenter content
  226. # wls::installwcc{'wccPS7':
  227. # mdwHome => $osMdwHome,
  228. # wlHome => $osWlHome,
  229. # oracleHome => $osOracleHome,
  230. # fullJDKName => $jdkWls11gJDK,
  231. # user => $user,
  232. # group => $group,
  233. # downloadDir => $downloadDir,
  234. # puppetDownloadMntPoint => $puppetDownloadMntPoint,
  235. # remoteFile => hiera('wls_remote_file'),
  236. # wccFile1 => 'ofm_wcc_generic_11.1.1.8.0_disk1_1of2.zip',
  237. # wccFile2 => 'ofm_wcc_generic_11.1.1.8.0_disk1_2of2.zip',
  238. # require => Wls::Installwc['wcPS7'],
  239. # }
  240. #nodemanager configuration and starting
  241. wls::nodemanager{'nodemanager11g':
  242. wlHome => $osWlHome,
  243. fullJDKName => $jdkWls11gJDK,
  244. user => $user,
  245. group => $group,
  246. serviceName => $serviceName,
  247. downloadDir => $downloadDir,
  248. listenPort => hiera('domain_nodemanager_port'),
  249. listenAddress => hiera('domain_adminserver_address'),
  250. logDir => $logDir,
  251. require => Wls::Installwc['wcPS7'],
  252. }
  253. }
  254. class wls1036_domain{
  255. $wlsDomainName = hiera('domain_name')
  256. $wlsDomainsPath = hiera('wls_domains_path_dir')
  257. $osTemplate = hiera('domain_template')
  258. $adminListenPort = hiera('domain_adminserver_port')
  259. $nodemanagerPort = hiera('domain_nodemanager_port')
  260. $address = hiera('domain_adminserver_address')
  261. $userConfigDir = hiera('wls_user_config_dir')
  262. $jdkWls11gJDK = hiera('wls_jdk_version')
  263. $osOracleHome = hiera('wls_oracle_base_home_dir')
  264. $osMdwHome = hiera('wls_middleware_home_dir')
  265. $osWlHome = hiera('wls_weblogic_home_dir')
  266. $user = hiera('wls_os_user')
  267. $group = hiera('wls_os_group')
  268. $downloadDir = hiera('wls_download_dir')
  269. $logDir = hiera('wls_log_dir')
  270. $reposUrl = "jdbc:oracle:thin:@wcdb.example.com:1521/test.oracle.com"
  271. $reposPrefix = "DEV"
  272. $reposPassword = "Welcome01"
  273. orautils::nodemanagerautostart{"autostart ${wlsDomainName}":
  274. version => "1111",
  275. wlHome => $osWlHome,
  276. user => $user,
  277. logDir => $logDir,
  278. }
  279. # install SOA OIM OAM domain
  280. wls::wlsdomain{'wcDomain':
  281. version => "1111",
  282. wlHome => $osWlHome,
  283. mdwHome => $osMdwHome,
  284. fullJDKName => $jdkWls11gJDK,
  285. wlsTemplate => $osTemplate,
  286. domain => $wlsDomainName,
  287. developmentMode => false,
  288. adminServerName => hiera('domain_adminserver'),
  289. adminListenAdr => $address,
  290. adminListenPort => $adminListenPort,
  291. nodemanagerPort => $nodemanagerPort,
  292. wlsUser => hiera('wls_weblogic_user'),
  293. password => hiera('domain_wls_password'),
  294. user => $user,
  295. group => $group,
  296. logDir => $logDir,
  297. downloadDir => $downloadDir,
  298. reposDbUrl => $reposUrl,
  299. reposPrefix => $reposPrefix,
  300. reposPassword => $reposPassword,
  301. }
  302. Wls::Wlscontrol{
  303. wlsDomain => $wlsDomainName,
  304. wlsDomainPath => "${wlsDomainsPath}/${wlsDomainName}",
  305. wlHome => $osWlHome,
  306. fullJDKName => $jdkWls11gJDK,
  307. wlsUser => hiera('wls_weblogic_user'),
  308. password => hiera('domain_wls_password'),
  309. address => $address,
  310. user => $user,
  311. group => $group,
  312. downloadDir => $downloadDir,
  313. logOutput => true,
  314. }
  315. # start AdminServers for configuration of WLS Domain
  316. wls::wlscontrol{'startAdminServer':
  317. wlsServerType => 'admin',
  318. wlsServer => "AdminServer",
  319. action => 'start',
  320. port => $nodemanagerPort,
  321. require => Wls::Wlsdomain['wcDomain'],
  322. }
  323. # create keystores for automatic WLST login
  324. wls::storeuserconfig{'wcDomain_keys':
  325. wlHome => $osWlHome,
  326. fullJDKName => $jdkWls11gJDK,
  327. domain => $wlsDomainName,
  328. address => $address,
  329. wlsUser => hiera('wls_weblogic_user'),
  330. password => hiera('domain_wls_password'),
  331. port => $adminListenPort,
  332. user => $user,
  333. group => $group,
  334. userConfigDir => $userConfigDir,
  335. downloadDir => $downloadDir,
  336. require => Wls::Wlscontrol['startAdminServer'],
  337. }
  338. }
  339. class maintenance {
  340. $osOracleHome = hiera('wls_oracle_base_home_dir')
  341. $osMdwHome = hiera('wls_middleware_home_dir')
  342. $osWlHome = hiera('wls_weblogic_home_dir')
  343. $user = hiera('wls_os_user')
  344. $group = hiera('wls_os_group')
  345. $downloadDir = hiera('wls_download_dir')
  346. $logDir = hiera('wls_log_dir')
  347. $mtimeParam = "1"
  348. cron { 'cleanwlstmp' :
  349. command => "find /tmp -name '*.tmp' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/tmp_purge.log 2>&1",
  350. user => oracle,
  351. hour => 06,
  352. minute => 25,
  353. }
  354. cron { 'mdwlogs' :
  355. command => "find ${osMdwHome}/logs -name 'wlst_*.*' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/wlst_purge.log 2>&1",
  356. user => oracle,
  357. hour => 06,
  358. minute => 30,
  359. }
  360. cron { 'oracle_common_lsinv' :
  361. command => "find ${osMdwHome}/oracle_common/cfgtoollogs/opatch/lsinv -name 'lsinventory*.txt' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_lsinv_common_purge.log 2>&1",
  362. user => oracle,
  363. hour => 06,
  364. minute => 31,
  365. }
  366. cron { 'oracle_soa1_lsinv' :
  367. command => "find ${osMdwHome}/Oracle_SOA1/cfgtoollogs/opatch/lsinv -name 'lsinventory*.txt' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_lsinv_soa1_purge.log 2>&1",
  368. user => oracle,
  369. hour => 06,
  370. minute => 33,
  371. }
  372. cron { 'oracle_common_opatch' :
  373. command => "find ${osMdwHome}/oracle_common/cfgtoollogs/opatch -name 'opatch*.log' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_common_purge.log 2>&1",
  374. user => oracle,
  375. hour => 06,
  376. minute => 34,
  377. }
  378. cron { 'oracle_soa1_opatch' :
  379. command => "find ${osMdwHome}/Oracle_SOA1/cfgtoollogs/opatch -name 'opatch*.log' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_soa_purge.log 2>&1",
  380. user => oracle,
  381. hour => 06,
  382. minute => 35,
  383. }
  384. }