defaultusersfolders.pp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. # == Define: wls::utils::defaultusersfolders
  2. #
  3. # create users/ group , download folder and oracle home
  4. #
  5. #
  6. ##
  7. define wls::utils::defaultusersfolders(
  8. $oracleHome = undef,
  9. $oraInventory = undef,
  10. $createUser = true,
  11. $user = 'oracle',
  12. $group = 'dba',
  13. $downloadDir = '/install',
  14. ) {
  15. case $operatingsystem {
  16. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  17. $execPath = "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:"
  18. Exec { path => $execPath,
  19. user => $user,
  20. group => $group,
  21. logoutput => true,
  22. }
  23. File {
  24. ensure => present,
  25. mode => 0775,
  26. owner => $user,
  27. group => $group,
  28. }
  29. }
  30. windows: {
  31. $execPath = "C:\\unxutils\\bin;C:\\unxutils\\usr\\local\\wbin;C:\\Windows\\system32;C:\\Windows"
  32. $checkCommand = "C:\\Windows\\System32\\cmd.exe /c"
  33. Exec { path => $execPath,
  34. }
  35. File { ensure => present,
  36. mode => 0777,
  37. }
  38. }
  39. }
  40. if ( $createUser ) {
  41. # for linux , create a oracle user plus a dba group
  42. case $operatingsystem {
  43. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES: {
  44. if ! defined(Group[$group]) {
  45. group { $group :
  46. ensure => present,
  47. }
  48. }
  49. if ! defined(User[$user]) {
  50. # http://raftaman.net/?p=1311 for generating password
  51. user { $user :
  52. ensure => present,
  53. groups => $group,
  54. shell => '/bin/bash',
  55. password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.',
  56. home => "/home/${user}",
  57. comment => 'created by Puppet',
  58. require => Group[$group],
  59. managehome => true,
  60. }
  61. }
  62. }
  63. Solaris: {
  64. if ! defined(Group[$group]) {
  65. group { $group :
  66. ensure => present,
  67. }
  68. }
  69. if ! defined(User[$user]) {
  70. # http://raftaman.net/?p=1311 for generating password
  71. user { $user :
  72. ensure => present,
  73. groups => $group,
  74. shell => '/bin/bash',
  75. password => '$1$DSJ51vh6$4XzzwyIOk6Bi/54kglGk3.',
  76. home => "/export/home/${user}",
  77. comment => 'created by Puppet',
  78. require => Group[$group],
  79. managehome => true,
  80. }
  81. }
  82. }
  83. }
  84. }
  85. # create all folders
  86. case $operatingsystem {
  87. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  88. if ! defined(Exec ["create ${oracleHome} directory"]) {
  89. exec { "create ${oracleHome} directory":
  90. command => "mkdir -p ${oracleHome}",
  91. unless => "test -d ${oracleHome}",
  92. user => 'root',
  93. }
  94. }
  95. if ! defined(Exec ["create ${downloadDir} home directory"]) {
  96. exec { "create ${downloadDir} home directory":
  97. command => "mkdir -p ${downloadDir}",
  98. unless => "test -d ${downloadDir}",
  99. user => 'root',
  100. }
  101. }
  102. }
  103. windows: {
  104. # make dir folder suitable for unxtools
  105. $oracleHomeWin = slash_replace( $oracleHome )
  106. $downloadDirWin = slash_replace( $downloadDir )
  107. if ! defined(Exec ["create ${oracleHome} directory"]) {
  108. exec { "create ${oracleHome} directory":
  109. command => "${checkCommand} mkdir ${oracleHomeWin}",
  110. unless => "${checkCommand} dir ${oracleHomeWin}",
  111. }
  112. }
  113. if ! defined(Exec ["create ${downloadDir} home directory"]) {
  114. exec { "create ${downloadDir} home directory":
  115. command => "${checkCommand} mkdir ${downloadDirWin}",
  116. unless => "${checkCommand} dir ${downloadDirWin}",
  117. }
  118. }
  119. }
  120. default: {
  121. fail("Unrecognized operating system")
  122. }
  123. }
  124. if ( $createUser == true and $operatingsystem != "windows" ) {
  125. # also set permissions on downloadDir
  126. if ! defined(File[$downloadDir]) {
  127. # check oracle install folder
  128. file { $downloadDir :
  129. ensure => directory,
  130. recurse => false,
  131. replace => false,
  132. require => [User[$user],Exec["create ${downloadDir} home directory"]],
  133. }
  134. }
  135. # also set permissions on oracleHome
  136. if ! defined(File[$oracleHome]) {
  137. file { $oracleHome:
  138. ensure => directory,
  139. recurse => false,
  140. replace => false,
  141. require => [User[$user],Exec["create ${oracleHome} directory"]],
  142. }
  143. }
  144. if ( $oraInventory != undef ) {
  145. # also set permissions on oraInventory
  146. if ! defined(File[$oraInventory]) {
  147. file { $oraInventory:
  148. ensure => directory,
  149. recurse => false,
  150. replace => false,
  151. require => [User[$user],Exec["create ${oracleHome} directory"]],
  152. }
  153. }
  154. }
  155. } else {
  156. # also set permissions on downloadDir
  157. if ! defined(File[$downloadDir]) {
  158. # check oracle install folder
  159. file { $downloadDir :
  160. ensure => directory,
  161. recurse => false,
  162. replace => false,
  163. require => Exec["create ${downloadDir} home directory"],
  164. }
  165. }
  166. # also set permissions on oracleHome
  167. if ! defined(File[$oracleHome]) {
  168. file { $oracleHome:
  169. ensure => directory,
  170. recurse => false,
  171. replace => false,
  172. require => Exec["create ${oracleHome} directory"],
  173. }
  174. }
  175. if ( $oraInventory != undef ) {
  176. case $operatingsystem {
  177. CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: {
  178. # also set permissions on oraInventory
  179. if ! defined(File[$oraInventory]) {
  180. file { $oraInventory:
  181. ensure => directory,
  182. recurse => false,
  183. replace => false,
  184. require => Exec["create ${oracleHome} directory"],
  185. }
  186. }
  187. }
  188. }
  189. }
  190. }
  191. }