globals.pp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. # Class for setting cross-class global overrides. See README.md for more
  2. # details.
  3. class postgresql::globals (
  4. $client_package_name = undef,
  5. $server_package_name = undef,
  6. $contrib_package_name = undef,
  7. $devel_package_name = undef,
  8. $java_package_name = undef,
  9. $docs_package_name = undef,
  10. $perl_package_name = undef,
  11. $plperl_package_name = undef,
  12. $plpython_package_name = undef,
  13. $python_package_name = undef,
  14. $postgis_package_name = undef,
  15. $service_name = undef,
  16. $service_provider = undef,
  17. $service_status = undef,
  18. $default_database = undef,
  19. $validcon_script_path = undef,
  20. $initdb_path = undef,
  21. $createdb_path = undef,
  22. $psql_path = undef,
  23. $pg_hba_conf_path = undef,
  24. $pg_ident_conf_path = undef,
  25. $postgresql_conf_path = undef,
  26. $recovery_conf_path = undef,
  27. $default_connect_settings = {},
  28. $pg_hba_conf_defaults = undef,
  29. $datadir = undef,
  30. $confdir = undef,
  31. $bindir = undef,
  32. $xlogdir = undef,
  33. $logdir = undef,
  34. $log_line_prefix = undef,
  35. $user = undef,
  36. $group = undef,
  37. $version = undef,
  38. $postgis_version = undef,
  39. $repo_proxy = undef,
  40. $needs_initdb = undef,
  41. $encoding = undef,
  42. $locale = undef,
  43. $manage_pg_hba_conf = undef,
  44. $manage_pg_ident_conf = undef,
  45. $manage_recovery_conf = undef,
  46. $manage_package_repo = undef,
  47. ) {
  48. # We are determining this here, because it is needed by the package repo
  49. # class.
  50. $default_version = $::osfamily ? {
  51. /^(RedHat|Linux)/ => $::operatingsystem ? {
  52. 'Fedora' => $::operatingsystemrelease ? {
  53. /^(24)$/ => '9.5',
  54. /^(22|23)$/ => '9.4',
  55. /^(21)$/ => '9.3',
  56. /^(18|19|20)$/ => '9.2',
  57. /^(17)$/ => '9.1',
  58. default => undef,
  59. },
  60. 'Amazon' => '9.2',
  61. default => $::operatingsystemrelease ? {
  62. /^7\./ => '9.2',
  63. /^6\./ => '8.4',
  64. /^5\./ => '8.1',
  65. default => undef,
  66. },
  67. default => $::operatingsystemrelease ? {
  68. /^7\./ => '9.2',
  69. /^6\./ => '8.4',
  70. /^5\./ => '8.1',
  71. default => undef,
  72. },
  73. },
  74. 'Debian' => $::operatingsystem ? {
  75. 'Debian' => $::operatingsystemrelease ? {
  76. /^6\./ => '8.4',
  77. /^(wheezy|7\.)/ => '9.1',
  78. /^(jessie|8\.)/ => '9.4',
  79. default => undef,
  80. },
  81. 'Ubuntu' => $::operatingsystemrelease ? {
  82. /^(10.04|10.10|11.04)$/ => '8.4',
  83. /^(11.10|12.04|12.10|13.04|13.10)$/ => '9.1',
  84. /^(14.04)$/ => '9.3',
  85. /^(14.10|15.04|15.10)$/ => '9.4',
  86. /^(16.04)$/ => '9.5',
  87. default => undef,
  88. },
  89. default => undef,
  90. },
  91. 'Archlinux' => $::operatingsystem ? {
  92. /Archlinux/ => '9.2',
  93. default => '9.2',
  94. },
  95. 'FreeBSD' => '93',
  96. 'OpenBSD' => $::operatingsystemrelease ? {
  97. /5\.6/ => '9.3',
  98. /5\.[7-9]/ => '9.4',
  99. /6\.[0-9]/ => '9.5',
  100. },
  101. 'Suse' => $::operatingsystem ? {
  102. 'SLES' => $::operatingsystemrelease ? {
  103. /11\.[0-4]/ => '91',
  104. default => '93',
  105. },
  106. 'OpenSuSE' => $::operatingsystemrelease ? {
  107. '13.2' => '93',
  108. },
  109. default => undef,
  110. },
  111. default => undef,
  112. }
  113. $globals_version = pick($version, $default_version, 'unknown')
  114. if($globals_version == 'unknown') {
  115. fail('No preferred version defined or automatically detected.')
  116. }
  117. $default_postgis_version = $globals_version ? {
  118. '8.1' => '1.3.6',
  119. '8.4' => '1.5',
  120. '9.0' => '1.5',
  121. '9.1' => '1.5',
  122. '91' => '1.5',
  123. '9.2' => '2.0',
  124. '9.3' => '2.1',
  125. '93' => '2.1',
  126. '9.4' => '2.1',
  127. '9.5' => '2.2',
  128. default => undef,
  129. }
  130. $globals_postgis_version = $postgis_version ? {
  131. undef => $default_postgis_version,
  132. default => $postgis_version,
  133. }
  134. # Setup of the repo only makes sense globally, so we are doing this here.
  135. if($manage_package_repo) {
  136. class { 'postgresql::repo':
  137. version => $globals_version,
  138. proxy => $repo_proxy,
  139. }
  140. }
  141. }