globals.pp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. $perl_package_name = undef,
  10. $plperl_package_name = undef,
  11. $python_package_name = undef,
  12. $postgis_package_name = undef,
  13. $service_name = undef,
  14. $service_provider = undef,
  15. $service_status = undef,
  16. $default_database = undef,
  17. $initdb_path = undef,
  18. $createdb_path = undef,
  19. $psql_path = undef,
  20. $pg_hba_conf_path = undef,
  21. $pg_ident_conf_path = undef,
  22. $postgresql_conf_path = undef,
  23. $pg_hba_conf_defaults = undef,
  24. $datadir = undef,
  25. $confdir = undef,
  26. $bindir = undef,
  27. $xlogdir = undef,
  28. $user = undef,
  29. $group = undef,
  30. $version = undef,
  31. $postgis_version = undef,
  32. $needs_initdb = undef,
  33. $encoding = undef,
  34. $locale = undef,
  35. $manage_firewall = undef,
  36. $manage_pg_hba_conf = undef,
  37. $manage_pg_ident_conf = undef,
  38. $firewall_supported = undef,
  39. $manage_package_repo = undef
  40. ) {
  41. # We are determining this here, because it is needed by the package repo
  42. # class.
  43. $default_version = $::osfamily ? {
  44. /^(RedHat|Linux)/ => $::operatingsystem ? {
  45. 'Fedora' => $::operatingsystemrelease ? {
  46. /^(18|19|20)$/ => '9.2',
  47. /^(17)$/ => '9.1',
  48. default => undef,
  49. },
  50. 'Amazon' => '9.2',
  51. default => $::operatingsystemrelease ? {
  52. /^7\./ => '9.2',
  53. /^6\./ => '8.4',
  54. /^5\./ => '8.1',
  55. default => undef,
  56. },
  57. },
  58. 'Debian' => $::operatingsystem ? {
  59. 'Debian' => $::operatingsystemrelease ? {
  60. /^6\./ => '8.4',
  61. /^(wheezy|7\.)/ => '9.1',
  62. /^(jessie|8\.)/ => '9.3',
  63. default => undef,
  64. },
  65. 'Ubuntu' => $::operatingsystemrelease ? {
  66. /^(14.04)$/ => '9.3',
  67. /^(11.10|12.04|12.10|13.04|13.10)$/ => '9.1',
  68. /^(10.04|10.10|11.04)$/ => '8.4',
  69. default => undef,
  70. },
  71. default => undef,
  72. },
  73. 'Archlinux' => $::operatingsystem ? {
  74. /Archlinux/ => '9.2',
  75. default => '9.2',
  76. },
  77. 'FreeBSD' => '93',
  78. default => undef,
  79. }
  80. $globals_version = pick($version, $default_version, 'unknown')
  81. if($globals_version == 'unknown') {
  82. fail('No preferred version defined or automatically detected.')
  83. }
  84. $default_postgis_version = $globals_version ? {
  85. '8.1' => '1.3.6',
  86. '8.4' => '1.5',
  87. '9.0' => '1.5',
  88. '9.1' => '1.5',
  89. '9.2' => '2.0',
  90. '9.3' => '2.1',
  91. default => undef,
  92. }
  93. $globals_postgis_version = pick($postgis_version, $default_postgis_version)
  94. # Setup of the repo only makes sense globally, so we are doing this here.
  95. if($manage_package_repo) {
  96. # Workaround the lack of RHEL7 repositories for now.
  97. if ! ($::operatingsystem == 'RedHat' and $::operatingsystemrelease =~ /^7/) {
  98. class { 'postgresql::repo':
  99. version => $globals_version
  100. }
  101. }
  102. }
  103. }