freighthop 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Puppetfile +1 -0
- data/Puppetfile.lock +3 -0
- data/Vagrantfile +1 -1
- data/bin/fh +2 -78
- data/lib/freighthop/cli/help.rb +69 -0
- data/lib/freighthop/cli/ssh.rb +46 -0
- data/lib/freighthop/cli/vagrant.rb +26 -0
- data/lib/freighthop/cli.rb +40 -0
- data/lib/freighthop/config.rb +4 -0
- data/lib/freighthop/vagrant_env.rb +24 -0
- data/lib/freighthop/version.rb +1 -1
- data/lib/freighthop.rb +7 -4
- data/local_modules/freighthop/manifests/database/mysql.pp +20 -0
- data/local_modules/freighthop/manifests/database/postgres.pp +6 -6
- data/local_modules/freighthop/manifests/database.pp +6 -8
- data/local_modules/freighthop/manifests/init.pp +1 -8
- data/local_modules/freighthop/manifests/params.pp +0 -3
- data/modules/apt/CHANGELOG +12 -2
- data/modules/apt/Gemfile +6 -5
- data/modules/apt/Gemfile.lock +40 -5
- data/modules/apt/Modulefile +1 -1
- data/modules/apt/README.md +2 -1
- data/modules/apt/Rakefile +1 -0
- data/modules/apt/manifests/init.pp +4 -1
- data/modules/apt/manifests/ppa.pp +1 -1
- data/modules/apt/manifests/update.pp +1 -0
- data/modules/apt/metadata.json +21 -13
- data/modules/apt/spec/defines/ppa_spec.rb +3 -3
- data/modules/apt/spec/defines/source_spec.rb +2 -2
- data/modules/apt/spec/spec_helper_system.rb +30 -0
- data/modules/apt/spec/system/apt_builddep_spec.rb +38 -0
- data/modules/apt/spec/system/apt_key_spec.rb +53 -0
- data/modules/apt/spec/system/apt_ppa_spec.rb +59 -0
- data/modules/apt/spec/system/apt_source_spec.rb +51 -0
- data/modules/apt/spec/system/basic_spec.rb +10 -0
- data/modules/apt/spec/system/class_spec.rb +20 -0
- data/modules/apt/templates/source.list.erb +2 -2
- data/modules/freighthop/manifests/database/mysql.pp +20 -0
- data/modules/freighthop/manifests/database/postgres.pp +6 -6
- data/modules/freighthop/manifests/database.pp +6 -8
- data/modules/freighthop/manifests/init.pp +1 -8
- data/modules/freighthop/manifests/params.pp +0 -3
- data/modules/mysql/CHANGELOG +403 -0
- data/modules/mysql/Gemfile +24 -0
- data/modules/mysql/Gemfile.lock +129 -0
- data/modules/mysql/LICENSE +201 -0
- data/modules/mysql/Modulefile +9 -0
- data/modules/mysql/README.md +492 -0
- data/modules/mysql/Rakefile +2 -0
- data/modules/mysql/TODO +8 -0
- data/modules/mysql/files/mysqltuner.pl +966 -0
- data/modules/mysql/lib/puppet/parser/functions/mysql_deepmerge.rb +52 -0
- data/modules/mysql/lib/puppet/parser/functions/mysql_password.rb +15 -0
- data/modules/mysql/lib/puppet/parser/functions/mysql_strip_hash.rb +21 -0
- data/modules/mysql/lib/puppet/provider/database/mysql.rb +52 -0
- data/modules/mysql/lib/puppet/provider/database_grant/mysql.rb +210 -0
- data/modules/mysql/lib/puppet/provider/database_user/mysql.rb +76 -0
- data/modules/mysql/lib/puppet/provider/mysql.rb +67 -0
- data/modules/mysql/lib/puppet/provider/mysql_database/mysql.rb +68 -0
- data/modules/mysql/lib/puppet/provider/mysql_grant/mysql.rb +115 -0
- data/modules/mysql/lib/puppet/provider/mysql_user/mysql.rb +115 -0
- data/modules/mysql/lib/puppet/type/database.rb +21 -0
- data/modules/mysql/lib/puppet/type/database_grant.rb +79 -0
- data/modules/mysql/lib/puppet/type/database_user.rb +31 -0
- data/modules/mysql/lib/puppet/type/mysql_database.rb +22 -0
- data/modules/mysql/lib/puppet/type/mysql_grant.rb +72 -0
- data/modules/mysql/lib/puppet/type/mysql_user.rb +45 -0
- data/modules/mysql/manifests/backup.pp +31 -0
- data/modules/mysql/manifests/bindings/java.pp +10 -0
- data/modules/mysql/manifests/bindings/perl.pp +10 -0
- data/modules/mysql/manifests/bindings/php.pp +10 -0
- data/modules/mysql/manifests/bindings/python.pp +10 -0
- data/modules/mysql/manifests/bindings/ruby.pp +10 -0
- data/modules/mysql/manifests/bindings.pp +33 -0
- data/modules/mysql/manifests/client/install.pp +8 -0
- data/modules/mysql/manifests/client.pp +27 -0
- data/modules/mysql/manifests/db.pp +59 -0
- data/modules/mysql/manifests/init.pp +100 -0
- data/modules/mysql/manifests/params.pp +230 -0
- data/modules/mysql/manifests/server/account_security.pp +22 -0
- data/modules/mysql/manifests/server/backup.pp +56 -0
- data/modules/mysql/manifests/server/config.pp +31 -0
- data/modules/mysql/manifests/server/install.pp +9 -0
- data/modules/mysql/manifests/server/monitor.pp +24 -0
- data/modules/mysql/manifests/server/mysqltuner.pp +9 -0
- data/modules/mysql/manifests/server/providers.pp +8 -0
- data/modules/mysql/manifests/server/root_password.pp +21 -0
- data/modules/mysql/manifests/server/service.pp +19 -0
- data/modules/mysql/manifests/server.pp +69 -0
- data/modules/mysql/metadata.json +289 -0
- data/modules/mysql/spec/classes/mysql_bindings_spec.rb +58 -0
- data/modules/mysql/spec/classes/mysql_client_spec.rb +16 -0
- data/modules/mysql/spec/classes/mysql_server_account_security_spec.rb +41 -0
- data/modules/mysql/spec/classes/mysql_server_backup_spec.rb +112 -0
- data/modules/mysql/spec/classes/mysql_server_monitor_spec.rb +31 -0
- data/modules/mysql/spec/classes/mysql_server_mysqltuner_spec.rb +5 -0
- data/modules/mysql/spec/classes/mysql_server_spec.rb +162 -0
- data/modules/mysql/spec/defines/mysql_db_spec.rb +51 -0
- data/modules/mysql/spec/spec.opts +6 -0
- data/modules/mysql/spec/spec_helper.rb +5 -0
- data/modules/mysql/spec/spec_helper_system.rb +28 -0
- data/modules/mysql/spec/system/mysql_account_delete_spec.rb +35 -0
- data/modules/mysql/spec/system/mysql_backup_spec.rb +77 -0
- data/modules/mysql/spec/system/mysql_bindings_spec.rb +90 -0
- data/modules/mysql/spec/system/mysql_db_spec.rb +61 -0
- data/modules/mysql/spec/system/mysql_server_monitor_spec.rb +30 -0
- data/modules/mysql/spec/system/mysql_server_root_password_spec.rb +71 -0
- data/modules/mysql/spec/system/mysql_server_spec.rb +85 -0
- data/modules/mysql/spec/system/types/mysql_grant_spec.rb +314 -0
- data/modules/mysql/spec/system/types/mysql_user_spec.rb +35 -0
- data/modules/mysql/spec/unit/mysql_password_spec.rb +27 -0
- data/modules/mysql/spec/unit/puppet/functions/mysql_deepmerge_spec.rb +77 -0
- data/modules/mysql/spec/unit/puppet/provider/database/mysql_spec.rb +86 -0
- data/modules/mysql/spec/unit/puppet/provider/database_grant/mysql_spec.rb +95 -0
- data/modules/mysql/spec/unit/puppet/provider/database_user/mysql_spec.rb +119 -0
- data/modules/mysql/spec/unit/puppet/provider/mysql_database/mysql_spec.rb +118 -0
- data/modules/mysql/spec/unit/puppet/provider/mysql_user/mysql_spec.rb +130 -0
- data/modules/mysql/spec/unit/puppet/type/mysql_database_spec.rb +29 -0
- data/modules/mysql/spec/unit/puppet/type/mysql_user_spec.rb +30 -0
- data/modules/mysql/templates/my.cnf.erb +17 -0
- data/modules/mysql/templates/my.cnf.pass.erb +7 -0
- data/modules/mysql/templates/my.conf.cnf.erb +17 -0
- data/modules/mysql/templates/mysqlbackup.sh.erb +57 -0
- data/modules/mysql/tests/backup.pp +8 -0
- data/modules/mysql/tests/bindings.pp +3 -0
- data/modules/mysql/tests/init.pp +1 -0
- data/modules/mysql/tests/java.pp +1 -0
- data/modules/mysql/tests/mysql_database.pp +12 -0
- data/modules/mysql/tests/mysql_grant.pp +5 -0
- data/modules/mysql/tests/mysql_user.pp +23 -0
- data/modules/mysql/tests/perl.pp +1 -0
- data/modules/mysql/tests/python.pp +1 -0
- data/modules/mysql/tests/ruby.pp +1 -0
- data/modules/mysql/tests/server/account_security.pp +4 -0
- data/modules/mysql/tests/server/config.pp +11 -0
- data/modules/mysql/tests/server.pp +3 -0
- data/modules/postgresql/Changelog +191 -0
- data/modules/postgresql/Gemfile +1 -0
- data/modules/postgresql/Gemfile.lock +9 -0
- data/modules/postgresql/LICENSE +198 -12
- data/modules/postgresql/Modulefile +2 -2
- data/modules/postgresql/NOTICE +14 -0
- data/modules/postgresql/README.md +435 -184
- data/modules/postgresql/files/validate_postgresql_connection.sh +31 -0
- data/modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb +37 -0
- data/modules/postgresql/lib/puppet/provider/postgresql_psql/ruby.rb +4 -0
- data/modules/postgresql/lib/puppet/type/postgresql_conf.rb +31 -0
- data/modules/postgresql/lib/puppet/type/postgresql_psql.rb +4 -0
- data/modules/postgresql/manifests/client.pp +17 -16
- data/modules/postgresql/manifests/globals.pp +95 -0
- data/modules/postgresql/manifests/lib/devel.pp +15 -0
- data/modules/postgresql/manifests/lib/java.pp +15 -0
- data/modules/postgresql/manifests/lib/python.pp +13 -0
- data/modules/postgresql/manifests/params.pp +127 -222
- data/modules/postgresql/manifests/repo/apt_postgresql_org.pp +30 -0
- data/modules/postgresql/manifests/repo/yum_postgresql_org.pp +38 -0
- data/modules/postgresql/manifests/repo.pp +22 -0
- data/modules/postgresql/manifests/server/config.pp +113 -0
- data/modules/postgresql/manifests/server/config_entry.pp +43 -0
- data/modules/postgresql/manifests/server/contrib.pp +27 -0
- data/modules/postgresql/manifests/server/database.pp +75 -0
- data/modules/postgresql/manifests/server/database_grant.pp +18 -0
- data/modules/postgresql/manifests/server/db.pp +36 -0
- data/modules/postgresql/manifests/server/firewall.pp +21 -0
- data/modules/postgresql/manifests/server/grant.pp +81 -0
- data/modules/postgresql/manifests/server/initdb.pp +52 -0
- data/modules/postgresql/manifests/server/install.pp +49 -0
- data/modules/postgresql/manifests/server/passwd.pp +34 -0
- data/modules/postgresql/manifests/server/pg_hba_rule.pp +54 -0
- data/modules/postgresql/manifests/server/plperl.pp +27 -0
- data/modules/postgresql/manifests/server/reload.pp +15 -0
- data/modules/postgresql/manifests/{role.pp → server/role.pp} +19 -33
- data/modules/postgresql/manifests/server/service.pp +40 -0
- data/modules/postgresql/manifests/{table_grant.pp → server/table_grant.pp} +4 -4
- data/modules/postgresql/manifests/server/tablespace.pp +42 -0
- data/modules/postgresql/manifests/server.pp +61 -83
- data/modules/postgresql/manifests/validate_db_connection.pp +49 -50
- data/modules/postgresql/metadata.json +123 -73
- data/modules/postgresql/spec/spec_helper_system.rb +13 -1
- data/modules/postgresql/spec/system/client_spec.rb +22 -0
- data/modules/postgresql/spec/system/common_patterns_spec.rb +53 -0
- data/modules/postgresql/spec/system/contrib_spec.rb +33 -0
- data/modules/postgresql/spec/system/lib/devel_spec.rb +22 -0
- data/modules/postgresql/spec/system/lib/java_spec.rb +25 -0
- data/modules/postgresql/spec/system/lib/python_spec.rb +24 -0
- data/modules/postgresql/spec/system/postgresql_psql_spec.rb +51 -0
- data/modules/postgresql/spec/system/server/config_entry_spec.rb +32 -0
- data/modules/postgresql/spec/system/server/database_grant_spec.rb +54 -0
- data/modules/postgresql/spec/system/server/database_spec.rb +35 -0
- data/modules/postgresql/spec/system/server/db_spec.rb +143 -0
- data/modules/postgresql/spec/system/server/grant_spec.rb +55 -0
- data/modules/postgresql/spec/system/server/pg_hba_rule_spec.rb +85 -0
- data/modules/postgresql/spec/system/server/plperl_spec.rb +29 -0
- data/modules/postgresql/spec/system/server/role_spec.rb +103 -0
- data/modules/postgresql/spec/system/server/table_grant_spec.rb +72 -0
- data/modules/postgresql/spec/system/server/tablespace_spec.rb +74 -0
- data/modules/postgresql/spec/system/server_spec.rb +217 -0
- data/modules/postgresql/spec/system/validate_db_connection_spec.rb +91 -0
- data/modules/postgresql/spec/unit/classes/client_spec.rb +27 -2
- data/modules/postgresql/spec/unit/classes/globals_spec.rb +28 -0
- data/modules/postgresql/spec/unit/classes/lib/devel_spec.rb +12 -0
- data/modules/postgresql/spec/unit/classes/{postgresql_java_spec.rb → lib/java_spec.rb} +9 -19
- data/modules/postgresql/spec/unit/classes/lib/python_spec.rb +31 -0
- data/modules/postgresql/spec/unit/classes/params_spec.rb +2 -1
- data/modules/postgresql/spec/unit/classes/repo_spec.rb +17 -0
- data/modules/postgresql/spec/unit/classes/server/contrib_spec.rb +42 -0
- data/modules/postgresql/spec/unit/classes/server/initdb_spec.rb +28 -0
- data/modules/postgresql/spec/unit/classes/server/plperl_spec.rb +45 -0
- data/modules/postgresql/spec/unit/classes/server_spec.rb +83 -2
- data/modules/postgresql/spec/unit/defines/server/config_entry_spec.rb +23 -0
- data/modules/postgresql/spec/unit/defines/server/database_grant_spec.rb +26 -0
- data/modules/postgresql/spec/unit/defines/server/database_spec.rb +16 -0
- data/modules/postgresql/spec/unit/defines/server/db_spec.rb +28 -0
- data/modules/postgresql/spec/unit/defines/{database_grant_spec.rb → server/grant_spec.rb} +7 -4
- data/modules/postgresql/spec/unit/defines/{pg_hba_rule_spec.rb → server/pg_hba_rule_spec.rb} +59 -2
- data/modules/postgresql/spec/unit/defines/server/role_spec.rb +23 -0
- data/modules/postgresql/spec/unit/defines/server/table_grant_spec.rb +27 -0
- data/modules/postgresql/spec/unit/defines/server/tablespace_spec.rb +23 -0
- data/modules/postgresql/spec/unit/defines/validate_db_connection_spec.rb +22 -9
- data/modules/postgresql/spec/unit/provider/postgresql_conf/parsed_spec.rb +112 -0
- data/modules/postgresql/spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb +29 -0
- data/modules/postgresql/spec/unit/puppet/type/postgresql_psql_spec.rb +1 -0
- data/modules/postgresql/spec/unit/type/postgresql_conf_spec.rb +50 -0
- metadata +177 -53
- data/modules/postgresql/examples/init.pp +0 -1
- data/modules/postgresql/examples/official-postgresql-repos.pp +0 -19
- data/modules/postgresql/examples/postgresql_database.pp +0 -22
- data/modules/postgresql/examples/postgresql_db.pp +0 -30
- data/modules/postgresql/examples/postgresql_grant.pp +0 -14
- data/modules/postgresql/examples/postgresql_pg_hba_rule.pp +0 -18
- data/modules/postgresql/examples/postgresql_pgconf_extras.pp +0 -19
- data/modules/postgresql/examples/postgresql_tablespace.pp +0 -73
- data/modules/postgresql/examples/postgresql_user.pp +0 -28
- data/modules/postgresql/examples/server.pp +0 -10
- data/modules/postgresql/lib/facter/postgres_default_version.rb +0 -69
- data/modules/postgresql/manifests/config/afterservice.pp +0 -47
- data/modules/postgresql/manifests/config/beforeservice.pp +0 -171
- data/modules/postgresql/manifests/config.pp +0 -74
- data/modules/postgresql/manifests/contrib.pp +0 -29
- data/modules/postgresql/manifests/database.pp +0 -85
- data/modules/postgresql/manifests/database_grant.pp +0 -35
- data/modules/postgresql/manifests/database_user.pp +0 -60
- data/modules/postgresql/manifests/db.pp +0 -77
- data/modules/postgresql/manifests/devel.pp +0 -27
- data/modules/postgresql/manifests/grant.pp +0 -77
- data/modules/postgresql/manifests/init.pp +0 -145
- data/modules/postgresql/manifests/initdb.pp +0 -52
- data/modules/postgresql/manifests/java.pp +0 -29
- data/modules/postgresql/manifests/package_source/apt_postgresql_org.pp +0 -21
- data/modules/postgresql/manifests/package_source/yum_postgresql_org.pp +0 -30
- data/modules/postgresql/manifests/pg_hba.pp +0 -19
- data/modules/postgresql/manifests/pg_hba_rule.pp +0 -41
- data/modules/postgresql/manifests/plperl.pp +0 -24
- data/modules/postgresql/manifests/psql.pp +0 -56
- data/modules/postgresql/manifests/python.pp +0 -18
- data/modules/postgresql/manifests/tablespace.pp +0 -59
- data/modules/postgresql/spec/system/install_spec.rb +0 -707
- data/modules/postgresql/spec/system/non_defaults_spec.rb +0 -114
- data/modules/postgresql/spec/unit/classes/contrib_spec.rb +0 -11
- data/modules/postgresql/spec/unit/classes/devel_spec.rb +0 -11
- data/modules/postgresql/spec/unit/classes/init_spec.rb +0 -71
- data/modules/postgresql/spec/unit/classes/postgresql_python_spec.rb +0 -53
- data/modules/postgresql/spec/unit/defines/database_spec.rb +0 -14
- data/modules/postgresql/spec/unit/defines/database_user_spec.rb +0 -19
- data/modules/postgresql/spec/unit/defines/db_spec.rb +0 -20
- data/modules/postgresql/spec/unit/defines/pg_hba_spec.rb +0 -20
- data/modules/postgresql/spec/unit/defines/psql_spec.rb +0 -20
- data/modules/postgresql/spec/unit/defines/role_spec.rb +0 -14
- data/modules/postgresql/spec/unit/defines/tablespace_spec.rb +0 -19
- data/modules/postgresql/spec/unit/facts/postgres_default_version_spec.rb +0 -14
@@ -1,245 +1,150 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
# system's default version.
|
18
|
-
#
|
19
|
-
# If you want to do that, note that it is important that you use the '->',
|
20
|
-
# or a before/require metaparameter to make sure that the `params`
|
21
|
-
# class is evaluated before any of the other classes in the module.
|
22
|
-
#
|
23
|
-
# Also note that this class includes the ability to automatically manage
|
24
|
-
# the yumrepo resource. If you'd prefer to manage the repo yourself, simply pass
|
25
|
-
# 'false' or omit the 'manage_repo' parameter--it defaults to 'false'. You will
|
26
|
-
# still need to use the 'params' class to specify the postgres version
|
27
|
-
# number, though, in order for the other classes to be able to find the
|
28
|
-
# correct paths to the postgres dirs.
|
29
|
-
|
30
|
-
class postgresql::params(
|
31
|
-
$version = $::postgres_default_version,
|
32
|
-
$manage_package_repo = false,
|
33
|
-
$package_source = undef,
|
34
|
-
$locale = undef,
|
35
|
-
$charset = 'UTF8',
|
36
|
-
$custom_datadir = undef,
|
37
|
-
$custom_confdir = undef,
|
38
|
-
$custom_bindir = undef,
|
39
|
-
$custom_client_package_name = undef,
|
40
|
-
$custom_server_package_name = undef,
|
41
|
-
$custom_contrib_package_name = undef,
|
42
|
-
$custom_devel_package_name = undef,
|
43
|
-
$custom_java_package_name = undef,
|
44
|
-
$custom_plperl_package_name = undef,
|
45
|
-
$custom_service_name = undef,
|
46
|
-
$custom_user = undef,
|
47
|
-
$custom_group = undef,
|
48
|
-
$run_initdb = undef
|
49
|
-
) {
|
50
|
-
$user = pick($custom_user, 'postgres')
|
51
|
-
$group = pick($custom_group, 'postgres')
|
52
|
-
$ip_mask_deny_postgres_user = '0.0.0.0/0'
|
53
|
-
$ip_mask_allow_all_users = '127.0.0.1/32'
|
54
|
-
$listen_addresses = 'localhost'
|
55
|
-
$ipv4acls = []
|
56
|
-
$ipv6acls = []
|
57
|
-
$manage_pg_hba_conf = true
|
58
|
-
# TODO: figure out a way to make this not platform-specific
|
59
|
-
$manage_redhat_firewall = false
|
60
|
-
|
61
|
-
if ($manage_package_repo) {
|
62
|
-
case $::osfamily {
|
63
|
-
'RedHat': {
|
64
|
-
$rh_pkg_source = pick($package_source, 'yum.postgresql.org')
|
65
|
-
|
66
|
-
case $rh_pkg_source {
|
67
|
-
'yum.postgresql.org': {
|
68
|
-
class { 'postgresql::package_source::yum_postgresql_org':
|
69
|
-
version => $version
|
70
|
-
}
|
71
|
-
}
|
72
|
-
|
73
|
-
default: {
|
74
|
-
fail("Unsupported package source '${rh_pkg_source}' for ${::osfamily} OS family. Currently the only supported source is 'yum.postgresql.org'")
|
75
|
-
}
|
76
|
-
}
|
77
|
-
}
|
78
|
-
|
79
|
-
'Debian': {
|
80
|
-
class { 'postgresql::package_source::apt_postgresql_org': }
|
81
|
-
}
|
82
|
-
|
83
|
-
default: {
|
84
|
-
fail("Unsupported osfamily for manage_package_repo: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} currently only supports managing repos for osfamily RedHat and Debian")
|
85
|
-
}
|
86
|
-
}
|
87
|
-
}
|
88
|
-
|
89
|
-
|
90
|
-
# This is a bit hacky, but if the puppet nodes don't have pluginsync enabled,
|
91
|
-
# they will fail with a not-so-helpful error message. Here we are explicitly
|
92
|
-
# verifying that the custom fact exists (which implies that pluginsync is
|
93
|
-
# enabled and succeeded). If not, we fail with a hint that tells the user
|
94
|
-
# that pluginsync might not be enabled. Ideally this would be handled directly
|
95
|
-
# in puppet.
|
96
|
-
if ($::postgres_default_version == undef) {
|
97
|
-
fail('No value for postgres_default_version facter fact; it\'s possible that you don\'t have pluginsync enabled.')
|
98
|
-
}
|
99
|
-
|
100
|
-
case $::operatingsystem {
|
101
|
-
default: {
|
102
|
-
$service_provider = undef
|
103
|
-
}
|
104
|
-
}
|
1
|
+
# PRIVATE CLASS: do not use directly
|
2
|
+
class postgresql::params inherits postgresql::globals {
|
3
|
+
$ensure = true
|
4
|
+
$version = $globals_version
|
5
|
+
$listen_addresses = 'localhost'
|
6
|
+
$ip_mask_deny_postgres_user = '0.0.0.0/0'
|
7
|
+
$ip_mask_allow_all_users = '127.0.0.1/32'
|
8
|
+
$ipv4acls = []
|
9
|
+
$ipv6acls = []
|
10
|
+
$user = pick($user, 'postgres')
|
11
|
+
$group = pick($group, 'postgres')
|
12
|
+
$encoding = $encoding
|
13
|
+
$locale = $locale
|
14
|
+
$service_provider = $service_provider
|
15
|
+
$manage_firewall = $manage_firewall
|
16
|
+
$manage_pg_hba_conf = pick($manage_pg_hba_conf, true)
|
105
17
|
|
106
18
|
# Amazon Linux's OS Family is 'Linux', operating system 'Amazon'.
|
107
19
|
case $::osfamily {
|
108
20
|
'RedHat', 'Linux': {
|
109
|
-
$needs_initdb
|
110
|
-
$firewall_supported
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
$
|
115
|
-
$
|
116
|
-
$
|
117
|
-
$
|
118
|
-
$
|
119
|
-
$
|
120
|
-
$
|
121
|
-
$
|
122
|
-
|
123
|
-
|
21
|
+
$needs_initdb = pick($needs_initdb, true)
|
22
|
+
$firewall_supported = pick($firewall_supported, true)
|
23
|
+
|
24
|
+
if $version == $default_version {
|
25
|
+
$client_package_name = pick($client_package_name, 'postgresql')
|
26
|
+
$server_package_name = pick($server_package_name, 'postgresql-server')
|
27
|
+
$contrib_package_name = pick($contrib_package_name,'postgresql-contrib')
|
28
|
+
$devel_package_name = pick($devel_package_name, 'postgresql-devel')
|
29
|
+
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
|
30
|
+
$plperl_package_name = pick($plperl_package_name, 'postgresql-plperl')
|
31
|
+
$service_name = pick($service_name, 'postgresql')
|
32
|
+
$bindir = pick($bindir, '/usr/bin')
|
33
|
+
$datadir = $::operatingsystem ? {
|
34
|
+
'Amazon' => pick($datadir, '/var/lib/pgsql9/data'),
|
35
|
+
default => pick($datadir, '/var/lib/pgsql/data'),
|
36
|
+
}
|
37
|
+
$confdir = pick($confdir, $datadir)
|
124
38
|
} else {
|
125
|
-
$version_parts
|
126
|
-
$package_version
|
127
|
-
$client_package_name
|
128
|
-
$server_package_name
|
129
|
-
$contrib_package_name
|
130
|
-
$devel_package_name
|
131
|
-
$java_package_name
|
132
|
-
$plperl_package_name
|
133
|
-
$service_name
|
134
|
-
$bindir
|
135
|
-
$datadir
|
136
|
-
|
39
|
+
$version_parts = split($version, '[.]')
|
40
|
+
$package_version = "${version_parts[0]}${version_parts[1]}"
|
41
|
+
$client_package_name = pick($client_package_name, "postgresql${package_version}")
|
42
|
+
$server_package_name = pick($server_package_name, "postgresql${package_version}-server")
|
43
|
+
$contrib_package_name = pick($contrib_package_name,"postgresql${package_version}-contrib")
|
44
|
+
$devel_package_name = pick($devel_package_name, "postgresql${package_version}-devel")
|
45
|
+
$java_package_name = pick($java_package_name, "postgresql${package_version}-jdbc")
|
46
|
+
$plperl_package_name = pick($plperl_package_name, "postgresql${package_version}-plperl")
|
47
|
+
$service_name = pick($service_name, "postgresql-${version}")
|
48
|
+
$bindir = pick($bindir, "/usr/pgsql-${version}/bin")
|
49
|
+
$datadir = $::operatingsystem ? {
|
50
|
+
'Amazon' => pick($datadir, "/var/lib/pgsql9/${version}/data"),
|
51
|
+
default => pick($datadir, "/var/lib/pgsql/${version}/data"),
|
52
|
+
}
|
53
|
+
$confdir = pick($confdir, $datadir)
|
137
54
|
}
|
55
|
+
$psql_path = pick($psql_path, "${bindir}/psql")
|
138
56
|
|
139
|
-
$service_status =
|
140
|
-
$python_package_name = 'python-psycopg2'
|
57
|
+
$service_status = $service_status
|
58
|
+
$python_package_name = pick($python_package_name, 'python-psycopg2')
|
59
|
+
}
|
60
|
+
|
61
|
+
'Archlinux': {
|
62
|
+
# Based on the existing version of the firewall module, this is normally
|
63
|
+
# true for Archlinux, but archlinux users want more control.
|
64
|
+
# so they can set it themself
|
65
|
+
$firewall_supported = pick($firewall_supported, true)
|
66
|
+
$needs_initdb = pick($needs_initdb, true)
|
67
|
+
|
68
|
+
# Archlinux doesn't have a client-package but has a libs package which
|
69
|
+
# pulls in postgresql server
|
70
|
+
$client_package_name = pick($client_package_name, 'postgresql')
|
71
|
+
$server_package_name = pick($server_package_name, 'postgresql-libs')
|
72
|
+
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
|
73
|
+
# Archlinux doesn't have develop packages
|
74
|
+
$devel_package_name = pick($devel_package_name, 'postgresql-devel')
|
75
|
+
# Archlinux does have postgresql-contrib but it isn't maintained
|
76
|
+
$contrib_package_name = pick($contrib_package_name,'undef')
|
77
|
+
# Archlinux postgresql package provides plperl
|
78
|
+
$plperl_package_name = pick($plperl_package_name, 'undef')
|
79
|
+
$service_name = pick($service_name, 'postgresql')
|
80
|
+
$bindir = pick($bindir, '/usr/bin')
|
81
|
+
$datadir = pick($datadir, '/var/lib/postgres/data')
|
82
|
+
$confdir = pick($confdir, $datadir)
|
83
|
+
$psql_path = pick($psql_path, "${bindir}/psql")
|
84
|
+
|
85
|
+
$service_status = $service_status
|
86
|
+
$python_package_name = pick($python_package_name, 'python-psycopg2')
|
141
87
|
}
|
142
88
|
|
143
89
|
'Debian': {
|
144
|
-
$firewall_supported = false
|
145
|
-
# TODO: not exactly sure yet what the right thing to do for Debian/Ubuntu is.
|
146
|
-
#$persist_firewall_command = '/sbin/iptables-save > /etc/iptables/rules.v4'
|
147
90
|
|
148
91
|
if $manage_package_repo == true {
|
149
|
-
$needs_initdb = pick($
|
150
|
-
$service_name = pick($
|
92
|
+
$needs_initdb = pick($needs_initdb, true)
|
93
|
+
$service_name = pick($service_name, 'postgresql')
|
151
94
|
} else {
|
152
|
-
$needs_initdb = pick($
|
153
|
-
|
154
|
-
'Debian'
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
$service_name = pick($custom_service_name, "postgresql-${version}")
|
161
|
-
} else {
|
162
|
-
$service_name = pick($custom_service_name, 'postgresql')
|
163
|
-
}
|
164
|
-
}
|
165
|
-
default: { }
|
95
|
+
$needs_initdb = pick($needs_initdb, false)
|
96
|
+
$service_name = $::operatingsystem ? {
|
97
|
+
'Debian' => pick($service_name, 'postgresql'),
|
98
|
+
'Ubuntu' => $::lsbmajdistrelease ? {
|
99
|
+
'10' => pick($service_name, "postgresql-${version}"),
|
100
|
+
default => pick($service_name, 'postgresql'),
|
101
|
+
},
|
102
|
+
default => undef
|
166
103
|
}
|
167
104
|
}
|
168
105
|
|
169
|
-
$client_package_name = pick($
|
170
|
-
$server_package_name = pick($
|
171
|
-
$contrib_package_name = pick($
|
172
|
-
$devel_package_name = pick($
|
173
|
-
$java_package_name = pick($
|
174
|
-
$
|
175
|
-
$
|
176
|
-
|
177
|
-
$
|
178
|
-
$
|
179
|
-
$
|
106
|
+
$client_package_name = pick($client_package_name, "postgresql-client-${version}")
|
107
|
+
$server_package_name = pick($server_package_name, "postgresql-${version}")
|
108
|
+
$contrib_package_name = pick($contrib_package_name, "postgresql-contrib-${version}")
|
109
|
+
$devel_package_name = pick($devel_package_name, 'libpq-dev')
|
110
|
+
$java_package_name = pick($java_package_name, 'libpostgresql-jdbc-java')
|
111
|
+
$plperl_package_name = pick($plperl_package_name, "postgresql-plperl-${version}")
|
112
|
+
$python_package_name = pick($python_package_name, 'python-psycopg2')
|
113
|
+
|
114
|
+
$bindir = pick($bindir, "/usr/lib/postgresql/${version}/bin")
|
115
|
+
$datadir = pick($datadir, "/var/lib/postgresql/${version}/main")
|
116
|
+
$confdir = pick($confdir, "/etc/postgresql/${version}/main")
|
117
|
+
$service_status = pick($service_status, "/etc/init.d/${service_name} status | /bin/egrep -q 'Running clusters: .+|online'")
|
118
|
+
$psql_path = pick($psql_path, "/usr/bin/psql")
|
119
|
+
|
120
|
+
$firewall_supported = pick($firewall_supported, true)
|
180
121
|
}
|
181
122
|
|
182
123
|
default: {
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
$
|
193
|
-
|
194
|
-
if ($
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
}
|
199
|
-
|
200
|
-
if ($custom_client_package_name) {
|
201
|
-
$client_package_name = $custom_client_package_name
|
202
|
-
} else {
|
203
|
-
fail("${err_msg_prefix}custom_client_package_name")
|
204
|
-
}
|
205
|
-
|
206
|
-
if ($custom_server_package_name) {
|
207
|
-
$server_package_name = $custom_server_package_name
|
208
|
-
} else {
|
209
|
-
fail("${err_msg_prefix}custom_server_package_name")
|
210
|
-
}
|
211
|
-
|
212
|
-
|
213
|
-
$contrib_package_name = $custom_contrib_package_name
|
214
|
-
$devel_package_name = $custom_devel_package_name
|
215
|
-
$java_package_name = $custom_java_package_name
|
216
|
-
|
217
|
-
if ($custom_bindir) {
|
218
|
-
$bindir = $custom_bindir
|
219
|
-
} else {
|
220
|
-
fail("${err_msg_prefix}custom_bindir")
|
221
|
-
}
|
222
|
-
|
223
|
-
if ($custom_datadir) {
|
224
|
-
$datadir = $custom_datadir
|
225
|
-
} else {
|
226
|
-
fail("${err_msg_prefix}custom_datadir")
|
227
|
-
}
|
228
|
-
|
229
|
-
if ($custom_confdir) {
|
230
|
-
$confdir = $custom_confdir
|
231
|
-
} else {
|
232
|
-
fail("${err_msg_prefix}custom_confdir")
|
233
|
-
}
|
234
|
-
|
235
|
-
$service_status = undef
|
124
|
+
# Based on the existing version of the firewall module, this is normally
|
125
|
+
# false for other OS, but this allows an escape hatch to override it.
|
126
|
+
$firewall_supported = pick($firewall_supported, false)
|
127
|
+
|
128
|
+
$psql_path = pick($psql_path, "${bindir}/psql")
|
129
|
+
|
130
|
+
# Since we can't determine defaults on our own, we rely on users setting
|
131
|
+
# parameters with the postgresql::globals class. Here we are checking
|
132
|
+
# that the mandatory minimum is set for the module to operate.
|
133
|
+
$err_prefix = "Module ${module_name} does not provide defaults for osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}; please specify a value for ${module_name}::globals::"
|
134
|
+
if ($needs_initdb == undef) { fail("${err_prefix}needs_initdb") }
|
135
|
+
if ($service_name == undef) { fail("${err_prefix}service_name") }
|
136
|
+
if ($client_package_name == undef) { fail("${err_prefix}client_package_name") }
|
137
|
+
if ($server_package_name == undef) { fail("${err_prefix}server_package_name") }
|
138
|
+
if ($bindir == undef) { fail("${err_prefix}bindir") }
|
139
|
+
if ($datadir == undef) { fail("${err_prefix}datadir") }
|
140
|
+
if ($confdir == undef) { fail("${err_prefix}confdir") }
|
236
141
|
}
|
237
142
|
}
|
238
143
|
|
239
|
-
$initdb_path = "${bindir}/initdb"
|
240
|
-
$createdb_path = "${bindir}/createdb"
|
241
|
-
$
|
242
|
-
$
|
243
|
-
$postgresql_conf_path = "${confdir}/postgresql.conf"
|
244
|
-
|
144
|
+
$initdb_path = pick($initdb_path, "${bindir}/initdb")
|
145
|
+
$createdb_path = pick($createdb_path, "${bindir}/createdb")
|
146
|
+
$pg_hba_conf_path = pick($pg_hba_conf_path, "${confdir}/pg_hba.conf")
|
147
|
+
$pg_hba_conf_defaults = pick($pg_hba_conf_defaults, true)
|
148
|
+
$postgresql_conf_path = pick($postgresql_conf_path, "${confdir}/postgresql.conf")
|
149
|
+
$default_database = pick($default_database, 'postgres')
|
245
150
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# PRIVATE CLASS: do not use directly
|
2
|
+
class postgresql::repo::apt_postgresql_org inherits postgresql::repo {
|
3
|
+
if($ensure == 'present' or $ensure == true) {
|
4
|
+
# Here we have tried to replicate the instructions on the PostgreSQL site:
|
5
|
+
#
|
6
|
+
# http://www.postgresql.org/download/linux/debian/
|
7
|
+
#
|
8
|
+
apt::pin { 'apt.postgresql.org':
|
9
|
+
originator => 'apt.postgresql.org',
|
10
|
+
priority => 500,
|
11
|
+
}->
|
12
|
+
apt::source { 'apt.postgresql.org':
|
13
|
+
location => 'http://apt.postgresql.org/pub/repos/apt/',
|
14
|
+
release => "${::lsbdistcodename}-pgdg",
|
15
|
+
repos => "main ${version}",
|
16
|
+
key => 'ACCC4CF8',
|
17
|
+
key_source => 'http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc',
|
18
|
+
include_src => false,
|
19
|
+
}
|
20
|
+
|
21
|
+
Apt::Source['apt.postgresql.org']->Package<|tag == 'postgresql'|>
|
22
|
+
} else {
|
23
|
+
apt::source { 'apt.postgresql.org':
|
24
|
+
ensure => absent,
|
25
|
+
}
|
26
|
+
apt::pin { 'apt.postgresql.org':
|
27
|
+
ensure => absent,
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# PRIVATE CLASS: do not use directly
|
2
|
+
class postgresql::repo::yum_postgresql_org inherits postgresql::repo {
|
3
|
+
$version_parts = split($version, '[.]')
|
4
|
+
$package_version = "${version_parts[0]}${version_parts[1]}"
|
5
|
+
$gpg_key_path = "/etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-${package_version}"
|
6
|
+
|
7
|
+
if ($ensure == 'present' or $ensure == true) {
|
8
|
+
file { $gpg_key_path:
|
9
|
+
source => 'puppet:///modules/postgresql/RPM-GPG-KEY-PGDG',
|
10
|
+
before => Yumrepo['yum.postgresql.org']
|
11
|
+
}
|
12
|
+
|
13
|
+
if($::operatingsystem == 'Fedora') {
|
14
|
+
$label1 = 'fedora'
|
15
|
+
$label2 = $label1
|
16
|
+
} else {
|
17
|
+
$label1 = 'redhat'
|
18
|
+
$label2 = 'rhel'
|
19
|
+
}
|
20
|
+
|
21
|
+
yumrepo { 'yum.postgresql.org':
|
22
|
+
descr => "PostgreSQL ${version} \$releasever - \$basearch",
|
23
|
+
baseurl => "http://yum.postgresql.org/${version}/${label1}/${label2}-\$releasever-\$basearch",
|
24
|
+
enabled => 1,
|
25
|
+
gpgcheck => 1,
|
26
|
+
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-${package_version}",
|
27
|
+
}
|
28
|
+
|
29
|
+
Yumrepo['yum.postgresql.org'] -> Package<|tag == 'postgresql'|>
|
30
|
+
} else {
|
31
|
+
yumrepo { 'yum.postgresql.org':
|
32
|
+
enabled => absent,
|
33
|
+
}->
|
34
|
+
file { $gpg_key_path:
|
35
|
+
ensure => absent,
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# PRIVATE CLASS: do not use directly
|
2
|
+
class postgresql::repo (
|
3
|
+
$ensure = $postgresql::params::ensure,
|
4
|
+
$version = undef
|
5
|
+
) inherits postgresql::params {
|
6
|
+
case $::osfamily {
|
7
|
+
'RedHat', 'Linux': {
|
8
|
+
if $version == undef {
|
9
|
+
fail("The parameter 'version' for 'postgresql::repo' is undefined. You must always define it when osfamily == Redhat or Linux")
|
10
|
+
}
|
11
|
+
class { 'postgresql::repo::yum_postgresql_org': }
|
12
|
+
}
|
13
|
+
|
14
|
+
'Debian': {
|
15
|
+
class { 'postgresql::repo::apt_postgresql_org': }
|
16
|
+
}
|
17
|
+
|
18
|
+
default: {
|
19
|
+
fail("Unsupported managed repository for osfamily: ${::osfamily}, operatingsystem: ${::operatingsystem}, module ${module_name} currently only supports managing repos for osfamily RedHat and Debian")
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# PRIVATE CLASS: do not call directly
|
2
|
+
class postgresql::server::config {
|
3
|
+
$ensure = $postgresql::server::ensure
|
4
|
+
$ip_mask_deny_postgres_user = $postgresql::server::ip_mask_deny_postgres_user
|
5
|
+
$ip_mask_allow_all_users = $postgresql::server::ip_mask_allow_all_users
|
6
|
+
$listen_addresses = $postgresql::server::listen_addresses
|
7
|
+
$ipv4acls = $postgresql::server::ipv4acls
|
8
|
+
$ipv6acls = $postgresql::server::ipv6acls
|
9
|
+
$pg_hba_conf_path = $postgresql::server::pg_hba_conf_path
|
10
|
+
$postgresql_conf_path = $postgresql::server::postgresql_conf_path
|
11
|
+
$pg_hba_conf_defaults = $postgresql::server::pg_hba_conf_defaults
|
12
|
+
$user = $postgresql::server::user
|
13
|
+
$group = $postgresql::server::group
|
14
|
+
$version = $postgresql::server::version
|
15
|
+
$manage_pg_hba_conf = $postgresql::server::manage_pg_hba_conf
|
16
|
+
|
17
|
+
File {
|
18
|
+
owner => $user,
|
19
|
+
group => $group,
|
20
|
+
}
|
21
|
+
|
22
|
+
if ($ensure == 'present' or $ensure == true) {
|
23
|
+
|
24
|
+
if ($manage_pg_hba_conf == true) {
|
25
|
+
# Prepare the main pg_hba file
|
26
|
+
concat { $pg_hba_conf_path:
|
27
|
+
owner => 0,
|
28
|
+
group => $group,
|
29
|
+
mode => '0640',
|
30
|
+
warn => true,
|
31
|
+
notify => Class['postgresql::server::reload'],
|
32
|
+
}
|
33
|
+
|
34
|
+
if $pg_hba_conf_defaults {
|
35
|
+
Postgresql::Server::Pg_hba_rule {
|
36
|
+
database => 'all',
|
37
|
+
user => 'all',
|
38
|
+
}
|
39
|
+
|
40
|
+
# Lets setup the base rules
|
41
|
+
$local_auth_option = $version ? {
|
42
|
+
'8.1' => 'sameuser',
|
43
|
+
default => undef,
|
44
|
+
}
|
45
|
+
postgresql::server::pg_hba_rule { 'local access as postgres user':
|
46
|
+
type => 'local',
|
47
|
+
user => $user,
|
48
|
+
auth_method => 'ident',
|
49
|
+
auth_option => $local_auth_option,
|
50
|
+
order => '001',
|
51
|
+
}
|
52
|
+
postgresql::server::pg_hba_rule { 'local access to database with same name':
|
53
|
+
type => 'local',
|
54
|
+
auth_method => 'ident',
|
55
|
+
auth_option => $local_auth_option,
|
56
|
+
order => '002',
|
57
|
+
}
|
58
|
+
postgresql::server::pg_hba_rule { 'allow localhost TCP access to postgresql user':
|
59
|
+
type => 'host',
|
60
|
+
user => $user,
|
61
|
+
address => '127.0.0.1/32',
|
62
|
+
auth_method => 'md5',
|
63
|
+
order => '003',
|
64
|
+
}
|
65
|
+
postgresql::server::pg_hba_rule { 'deny access to postgresql user':
|
66
|
+
type => 'host',
|
67
|
+
user => $user,
|
68
|
+
address => $ip_mask_deny_postgres_user,
|
69
|
+
auth_method => 'reject',
|
70
|
+
order => '004',
|
71
|
+
}
|
72
|
+
|
73
|
+
# ipv4acls are passed as an array of rule strings, here we transform
|
74
|
+
# them into a resources hash, and pass the result to create_resources
|
75
|
+
$ipv4acl_resources = postgresql_acls_to_resources_hash($ipv4acls,
|
76
|
+
'ipv4acls', 10)
|
77
|
+
create_resources('postgresql::server::pg_hba_rule', $ipv4acl_resources)
|
78
|
+
|
79
|
+
postgresql::server::pg_hba_rule { 'allow access to all users':
|
80
|
+
type => 'host',
|
81
|
+
address => $ip_mask_allow_all_users,
|
82
|
+
auth_method => 'md5',
|
83
|
+
order => '100',
|
84
|
+
}
|
85
|
+
postgresql::server::pg_hba_rule { 'allow access to ipv6 localhost':
|
86
|
+
type => 'host',
|
87
|
+
address => '::1/128',
|
88
|
+
auth_method => 'md5',
|
89
|
+
order => '101',
|
90
|
+
}
|
91
|
+
|
92
|
+
# ipv6acls are passed as an array of rule strings, here we transform
|
93
|
+
# them into a resources hash, and pass the result to create_resources
|
94
|
+
$ipv6acl_resources = postgresql_acls_to_resources_hash($ipv6acls,
|
95
|
+
'ipv6acls', 102)
|
96
|
+
create_resources('postgresql::server::pg_hba_rule', $ipv6acl_resources)
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
# We must set a "listen_addresses" line in the postgresql.conf if we
|
101
|
+
# want to allow any connections from remote hosts.
|
102
|
+
postgresql::server::config_entry { 'listen_addresses':
|
103
|
+
value => $listen_addresses,
|
104
|
+
}
|
105
|
+
} else {
|
106
|
+
file { $pg_hba_conf_path:
|
107
|
+
ensure => absent,
|
108
|
+
}
|
109
|
+
file { $postgresql_conf_path:
|
110
|
+
ensure => absent,
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Manage a postgresql.conf entry. See README.md for more details.
|
2
|
+
define postgresql::server::config_entry (
|
3
|
+
$ensure = 'present',
|
4
|
+
$value = undef,
|
5
|
+
$path = false
|
6
|
+
) {
|
7
|
+
$postgresql_conf_path = $postgresql::server::postgresql_conf_path
|
8
|
+
|
9
|
+
$target = $path ? {
|
10
|
+
false => $postgresql_conf_path,
|
11
|
+
default => $path,
|
12
|
+
}
|
13
|
+
|
14
|
+
case $name {
|
15
|
+
/data_directory|hba_file|ident_file|include|listen_addresses|port|max_connections|superuser_reserved_connections|unix_socket_directory|unix_socket_group|unix_socket_permissions|bonjour|bonjour_name|ssl|ssl_ciphers|shared_buffers|max_prepared_transactions|max_files_per_process|shared_preload_libraries|wal_level|wal_buffers|archive_mode|max_wal_senders|hot_standby|logging_collector|silent_mode|track_activity_query_size|autovacuum_max_workers|autovacuum_freeze_max_age|max_locks_per_transaction|max_pred_locks_per_transaction|restart_after_crash/: {
|
16
|
+
Postgresql_conf {
|
17
|
+
notify => Class['postgresql::server::service'],
|
18
|
+
before => Class['postgresql::server::reload'],
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
default: {
|
23
|
+
Postgresql_conf {
|
24
|
+
notify => Class['postgresql::server::reload'],
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
case $ensure {
|
30
|
+
/present|absent/: {
|
31
|
+
postgresql_conf { $name:
|
32
|
+
ensure => $ensure,
|
33
|
+
target => $target,
|
34
|
+
value => $value,
|
35
|
+
require => Class['postgresql::server::initdb'],
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
default: {
|
40
|
+
fail("Unknown value for ensure '${ensure}'.")
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Install the contrib postgresql packaging. See README.md for more details.
|
2
|
+
class postgresql::server::contrib (
|
3
|
+
$package_name = $postgresql::params::contrib_package_name,
|
4
|
+
$package_ensure = 'present'
|
5
|
+
) inherits postgresql::params {
|
6
|
+
validate_string($package_name)
|
7
|
+
|
8
|
+
package { 'postgresql-contrib':
|
9
|
+
ensure => $package_ensure,
|
10
|
+
name => $package_name,
|
11
|
+
tag => 'postgresql',
|
12
|
+
}
|
13
|
+
|
14
|
+
if($package_ensure == 'present' or $package_ensure == true) {
|
15
|
+
anchor { 'postgresql::server::contrib::start': }->
|
16
|
+
Class['postgresql::server::install']->
|
17
|
+
Package['postgresql-contrib']->
|
18
|
+
Class['postgresql::server::service']->
|
19
|
+
anchor { 'postgresql::server::contrib::end': }
|
20
|
+
} else {
|
21
|
+
anchor { 'postgresql::server::contrib::start': }->
|
22
|
+
Class['postgresql::server::service']->
|
23
|
+
Package['postgresql-contrib']->
|
24
|
+
Class['postgresql::server::install']->
|
25
|
+
anchor { 'postgresql::server::contrib::end': }
|
26
|
+
}
|
27
|
+
}
|