wcdb.pp 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. node 'wcdb' {
  2. include wcdb_os
  3. include wcdb_11g
  4. include wcdb_maintenance
  5. }
  6. # operating settings for Database & Middleware
  7. class wcdb_os {
  8. service { iptables:
  9. enable => false,
  10. ensure => false,
  11. hasstatus => true,
  12. }
  13. $groups = ['oinstall','dba' ,'oper' ]
  14. group { $groups :
  15. ensure => present,
  16. }
  17. user { 'oracle' :
  18. ensure => present,
  19. uid => 500,
  20. gid => 'oinstall',
  21. groups => $groups,
  22. shell => '/bin/bash',
  23. password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.',
  24. home => "/home/oracle",
  25. comment => "This user oracle was created by Puppet",
  26. require => Group[$groups],
  27. managehome => true,
  28. }
  29. $install = [ 'binutils.x86_64', 'compat-libstdc++-33.x86_64', 'glibc.x86_64','ksh.x86_64','libaio.x86_64',
  30. 'libgcc.x86_64', 'libstdc++.x86_64', 'make.x86_64','compat-libcap1.x86_64', 'gcc.x86_64',
  31. 'gcc-c++.x86_64','glibc-devel.x86_64','libaio-devel.x86_64','libstdc++-devel.x86_64',
  32. 'sysstat.x86_64','unixODBC-devel','glibc.i686','libXext.i686','libXtst.i686']
  33. package { $install:
  34. ensure => present,
  35. }
  36. class { 'limits':
  37. config => {
  38. '*' => { 'nofile' => { soft => '2048' , hard => '8192', },},
  39. 'oracle' => { 'nofile' => { soft => '65536' , hard => '65536', },
  40. 'nproc' => { soft => '2048' , hard => '16384', },
  41. 'stack' => { soft => '10240' ,},},
  42. },
  43. use_hiera => false,
  44. }
  45. # sysctl { 'kernel.msgmnb': ensure => 'present', permanent => 'yes', value => '65536',}
  46. # sysctl { 'kernel.msgmax': ensure => 'present', permanent => 'yes', value => '65536',}
  47. # sysctl { 'kernel.shmmax': ensure => 'present', permanent => 'yes', value => '2588483584',}
  48. # sysctl { 'kernel.shmall': ensure => 'present', permanent => 'yes', value => '2097152',}
  49. # sysctl { 'fs.file-max': ensure => 'present', permanent => 'yes', value => '6815744',}
  50. # sysctl { 'net.ipv4.tcp_keepalive_time': ensure => 'present', permanent => 'yes', value => '1800',}
  51. # sysctl { 'net.ipv4.tcp_keepalive_intvl': ensure => 'present', permanent => 'yes', value => '30',}
  52. # sysctl { 'net.ipv4.tcp_keepalive_probes': ensure => 'present', permanent => 'yes', value => '5',}
  53. # sysctl { 'net.ipv4.tcp_fin_timeout': ensure => 'present', permanent => 'yes', value => '30',}
  54. # sysctl { 'kernel.shmmni': ensure => 'present', permanent => 'yes', value => '4096', }
  55. # sysctl { 'fs.aio-max-nr': ensure => 'present', permanent => 'yes', value => '1048576',}
  56. # sysctl { 'kernel.sem': ensure => 'present', permanent => 'yes', value => '250 32000 100 128',}
  57. # sysctl { 'net.ipv4.ip_local_port_range': ensure => 'present', permanent => 'yes', value => '9000 65500',}
  58. # sysctl { 'net.core.rmem_default': ensure => 'present', permanent => 'yes', value => '262144',}
  59. # sysctl { 'net.core.rmem_max': ensure => 'present', permanent => 'yes', value => '4194304', }
  60. # sysctl { 'net.core.wmem_default': ensure => 'present', permanent => 'yes', value => '262144',}
  61. # sysctl { 'net.core.wmem_max': ensure => 'present', permanent => 'yes', value => '1048576',}
  62. }
  63. class wcdb_11g {
  64. require wcdb_os
  65. oradb::installdb{ '11.2_linux-x64':
  66. version => '11.2.0.4',
  67. file => 'p13390677_112040_Linux-x86-64',
  68. databaseType => 'SE',
  69. oracleBase => hiera('oracle_base_dir'),
  70. oracleHome => hiera('oracle_home_dir'),
  71. userBaseDir => '/home',
  72. createUser => false,
  73. user => 'oracle',
  74. group => 'dba',
  75. group_install => 'oinstall',
  76. group_oper => 'oper',
  77. downloadDir => hiera('oracle_download_dir'),
  78. remoteFile => false,
  79. puppetDownloadMntPoint => hiera('oracle_source'),
  80. }
  81. oradb::net{ 'config net8':
  82. oracleHome => hiera('oracle_home_dir'),
  83. version => hiera('oracle_version'),
  84. user => hiera('oracle_os_user'),
  85. group => hiera('oracle_os_group'),
  86. downloadDir => hiera('oracle_download_dir'),
  87. require => Oradb::Installdb['11.2_linux-x64'],
  88. }
  89. oradb::listener{'start listener':
  90. oracleBase => hiera('oracle_base_dir'),
  91. oracleHome => hiera('oracle_home_dir'),
  92. user => hiera('oracle_os_user'),
  93. group => hiera('oracle_os_group'),
  94. action => 'start',
  95. require => Oradb::Net['config net8'],
  96. }
  97. oradb::database{ 'wcDb':
  98. oracleBase => hiera('oracle_base_dir'),
  99. oracleHome => hiera('oracle_home_dir'),
  100. version => hiera('oracle_version'),
  101. user => hiera('oracle_os_user'),
  102. group => hiera('oracle_os_group'),
  103. downloadDir => hiera('oracle_download_dir'),
  104. action => 'create',
  105. dbName => hiera('oracle_database_name'),
  106. dbDomain => hiera('oracle_database_domain_name'),
  107. sysPassword => hiera('oracle_database_sys_password'),
  108. systemPassword => hiera('oracle_database_system_password'),
  109. dataFileDestination => "/oracle/oradata",
  110. recoveryAreaDestination => "/oracle/flash_recovery_area",
  111. characterSet => "AL32UTF8",
  112. nationalCharacterSet => "UTF8",
  113. initParams => "open_cursors=1000,processes=600,job_queue_processes=4",
  114. sampleSchema => 'FALSE',
  115. memoryPercentage => "40",
  116. memoryTotal => "800",
  117. databaseType => "MULTIPURPOSE",
  118. require => Oradb::Listener['start listener'],
  119. }
  120. oradb::dbactions{ 'start wcDb':
  121. oracleHome => hiera('oracle_home_dir'),
  122. user => hiera('oracle_os_user'),
  123. group => hiera('oracle_os_group'),
  124. action => 'start',
  125. dbName => hiera('oracle_database_name'),
  126. require => Oradb::Database['wcDb'],
  127. }
  128. oradb::autostartdatabase{ 'autostart oracle':
  129. oracleHome => hiera('oracle_home_dir'),
  130. user => hiera('oracle_os_user'),
  131. dbName => hiera('oracle_database_name'),
  132. require => Oradb::Dbactions['start wcDb'],
  133. }
  134. oradb::rcu{ 'DEV':
  135. rcuFile => 'ofm_rcu_linux_11.1.1.8.0_64_disk1_1of1.zip',
  136. version => '11.1.1.8',
  137. product => 'webcenter',
  138. oracleHome => hiera('oracle_home_dir'),
  139. user => hiera('oracle_os_user'),
  140. group => hiera('oracle_os_group'),
  141. downloadDir => hiera('oracle_download_dir'),
  142. action => 'create',
  143. dbServer => 'wcdb.example.com:1521',
  144. dbService => hiera('oracle_database_service_name'),
  145. sysPassword => hiera('oracle_database_sys_password'),
  146. schemaPrefix => 'DEV',
  147. reposPassword => hiera('oracle_database_rcu_password'),
  148. tempTablespace => 'TEMP',
  149. puppetDownloadMntPoint => hiera('oracle_source'),
  150. remoteFile => false,
  151. logoutput => true,
  152. require => Oradb::Dbactions['start wcDb'],
  153. }
  154. }
  155. class wcdb_maintenance {
  156. require wcdb_11g
  157. $mtimeParam = "1"
  158. cron { 'oracle_db_opatch' :
  159. command => "find /oracle/product/11.2/db/cfgtoollogs/opatch -name 'opatch*.log' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_db_purge.log 2>&1",
  160. user => oracle,
  161. hour => 06,
  162. minute => 34,
  163. }
  164. cron { 'oracle_db_lsinv' :
  165. command => "find /oracle/product/11.2/db/cfgtoollogs/opatch/lsinv -name 'lsinventory*.txt' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_lsinv_db_purge.log 2>&1",
  166. user => oracle,
  167. hour => 06,
  168. minute => 32,
  169. }
  170. }