255 Commits

Author SHA1 Message Date
Jenkins Server
9dc083e0a3 Recommit for updates in build 39 2026-03-14 12:19:11 +01:00
Jenkins Server
8c3def67f3 Merge remote-tracking branch 'origin/master' into jenkins-build-39 2026-03-14 12:18:00 +01:00
b7af773ef1 update Readme 2026-03-14 12:17:43 +01:00
5f70f4231b update Readme 2026-03-14 12:06:49 +01:00
Jenkins Server
f0791a08d1 Merge remote-tracking branch 'origin/master' into jenkins-build-38 2026-02-24 22:57:19 +01:00
Jenkins Server
588624b48f Merge remote-tracking branch 'origin/master' into jenkins-build-37 2026-02-24 22:53:54 +01:00
Jenkins Server
fd8b716501 Merge remote-tracking branch 'origin/master' into jenkins-build-36 2026-02-24 22:52:10 +01:00
Jenkins Server
95d6f18357 Merge remote-tracking branch 'origin/master' into jenkins-build-35 2026-02-24 22:48:02 +01:00
Jenkins Server
cfae376d46 Merge remote-tracking branch 'origin/master' into jenkins-build-33 2026-02-24 18:23:25 +01:00
b35e65e362 OP#459 update Readme 2026-02-24 18:23:04 +01:00
Jenkins Server
c1e494767e Merge remote-tracking branch 'origin/master' into jenkins-build-32 2026-02-06 16:08:37 +01:00
8e55ae1c25 update url 2026-02-06 16:08:15 +01:00
Jenkins Server
e123ba2549 Merge remote-tracking branch 'origin/master' into jenkins-build-31 2026-01-28 13:50:14 +01:00
eeb78a7717 OP#375 remove .vscode 2026-01-28 13:49:56 +01:00
Jenkins Server
2000dbbd97 Recommit for updates in build 30 2025-12-15 14:28:02 +01:00
Jenkins Server
fcc3166387 Merge remote-tracking branch 'origin/master' into jenkins-build-30 2025-12-15 14:26:41 +01:00
12ww1160
bbb2b7a991 OP#263 update Readme 2025-12-15 14:26:22 +01:00
Jenkins Server
0cc4e66a18 Recommit for updates in build 29 2025-12-15 14:11:23 +01:00
Jenkins Server
040a409d33 Merge remote-tracking branch 'origin/master' into jenkins-build-29 2025-12-15 14:10:05 +01:00
12ww1160
e00a4c8da1 OP#263 remove exporter option 2025-12-15 14:09:47 +01:00
Jenkins Server
13b308efbf Recommit for updates in build 28 2025-12-15 13:57:08 +01:00
Jenkins Server
e258f676be Merge remote-tracking branch 'origin/master' into jenkins-build-28 2025-12-15 13:55:41 +01:00
12ww1160
a59dc28728 OP#263 include exporter dirs 2025-12-15 13:55:20 +01:00
12ww1160
b9efa5800f OP#263 include exporter service 2025-12-15 13:54:08 +01:00
Jenkins Server
1f9a22668d Recommit for updates in build 27 2025-12-14 16:50:51 +01:00
Jenkins Server
0035340405 Merge remote-tracking branch 'origin/master' into jenkins-build-27 2025-12-14 16:49:30 +01:00
12ww1160
974e59af4d add badge 2025-12-14 16:49:10 +01:00
Jenkins Server
05bdfdbff1 Recommit for updates in build 26 2025-12-14 16:47:36 +01:00
Jenkins Server
1c257becaf Merge remote-tracking branch 'origin/master' into jenkins-build-26 2025-12-14 16:46:11 +01:00
12ww1160
894e870c1b add button 2025-12-14 16:45:55 +01:00
Jenkins Server
67f32a4698 Recommit for updates in build 25 2025-12-14 16:41:27 +01:00
Jenkins Server
344b29f8d3 Merge remote-tracking branch 'origin/master' into jenkins-build-25 2025-12-14 16:40:05 +01:00
12ww1160
dca27f11d0 add TOC 2025-12-14 16:39:50 +01:00
Jenkins Server
c382622ff0 Recommit for updates in build 24 2025-12-08 14:37:54 +01:00
Jenkins Server
013d90dfe0 Merge remote-tracking branch 'origin/master' into jenkins-build-24 2025-12-08 14:36:29 +01:00
12ww1160
51cdc98fbf OP#228 update Readme 2025-12-08 14:35:49 +01:00
12ww1160
60d9d4b237 OP#228 add tls file control 2025-12-08 14:32:52 +01:00
Jenkins Server
491b2ef86c Recommit for updates in build 23 2025-12-05 16:23:04 +01:00
Jenkins Server
574c5ddeff Merge remote-tracking branch 'origin/master' into jenkins-build-23 2025-12-05 16:21:53 +01:00
12ww1160
58e12e6714 OP#207fix variable relationship and add firewall rule 2025-12-05 16:21:33 +01:00
Jenkins Server
31883bde82 Merge remote-tracking branch 'origin/master' into jenkins-build-22 2025-12-05 16:07:38 +01:00
12ww1160
a830a3adfd fix variable 2025-12-05 16:07:19 +01:00
Jenkins Server
3d49502dae Merge remote-tracking branch 'origin/master' into jenkins-build-21 2025-12-05 16:04:18 +01:00
12ww1160
a9fc834b44 fix variable 2025-12-05 16:03:57 +01:00
Jenkins Server
75f00a0f23 Recommit for updates in build 20 2025-12-05 15:47:52 +01:00
Jenkins Server
3348b77d9d Merge remote-tracking branch 'origin/master' into jenkins-build-20 2025-12-05 15:46:42 +01:00
12ww1160
7ca147da38 fix variable 2025-12-05 15:46:23 +01:00
Jenkins Server
93b6366924 Recommit for updates in build 19 2025-12-05 15:44:13 +01:00
Jenkins Server
ca3e240cbd Merge remote-tracking branch 'origin/master' into jenkins-build-19 2025-12-05 15:43:02 +01:00
12ww1160
c70a12cd8f fix erb 2025-12-05 15:42:47 +01:00
Jenkins Server
2bbef1d5dc Recommit for updates in build 18 2025-12-05 15:38:47 +01:00
Jenkins Server
6ffb833ac2 Merge remote-tracking branch 'origin/master' into jenkins-build-18 2025-12-05 15:37:37 +01:00
12ww1160
64c8d080c3 fix erb 2025-12-05 15:37:17 +01:00
Jenkins Server
aaa8b547ba Recommit for updates in build 17 2025-12-05 15:17:09 +01:00
Jenkins Server
5ac782c6f0 Merge remote-tracking branch 'origin/master' into jenkins-build-17 2025-12-05 15:15:55 +01:00
12ww1160
618544db01 add example 2025-12-05 15:15:38 +01:00
Jenkins Server
c144aafbc6 Recommit for updates in build 16 2025-12-05 15:11:28 +01:00
Jenkins Server
55560b1676 Merge remote-tracking branch 'origin/master' into jenkins-build-16 2025-12-05 15:10:17 +01:00
12ww1160
7499707336 add example 2025-12-05 15:09:55 +01:00
Jenkins Server
9473712e9d Recommit for updates in build 15 2025-12-05 15:00:10 +01:00
Jenkins Server
cee2425524 Merge remote-tracking branch 'origin/master' into jenkins-build-15 2025-12-05 14:59:02 +01:00
12ww1160
076ae79304 add placeholder 2025-12-05 14:58:45 +01:00
Jenkins Server
1b9087f1fa Recommit for updates in build 14 2025-12-05 14:54:13 +01:00
Jenkins Server
866b397d87 Merge remote-tracking branch 'origin/master' into jenkins-build-14 2025-12-05 14:52:57 +01:00
12ww1160
4a0f9ca235 fix placeholder 2025-12-05 14:52:36 +01:00
Jenkins Server
eac03c8f45 Merge remote-tracking branch 'origin/master' into jenkins-build-13 2025-12-05 14:36:39 +01:00
12ww1160
47b2355431 fix header names 2025-12-05 14:36:20 +01:00
Jenkins Server
6212905110 Recommit for updates in build 12 2025-12-05 14:29:58 +01:00
Jenkins Server
64c7ce2843 Merge remote-tracking branch 'origin/master' into jenkins-build-12 2025-12-05 14:28:47 +01:00
12ww1160
4663bb15e0 fix header names 2025-12-05 14:28:25 +01:00
Jenkins Server
6621a252f3 Recommit for updates in build 11 2025-12-05 14:24:23 +01:00
Jenkins Server
9062323222 Merge remote-tracking branch 'origin/master' into jenkins-build-11 2025-12-05 14:23:07 +01:00
12ww1160
84a58bc0c8 fix autoload 2025-12-05 14:22:43 +01:00
12ww1160
b4c7c64169 fix params 2025-12-05 14:05:09 +01:00
12ww1160
527c6d784b add bouncer details 2025-12-05 14:02:54 +01:00
12ww1160
c4fcffcb40 add bouncer 2025-12-05 13:06:10 +01:00
Jenkins Server
6cf1de9262 Recommit for updates in build 7 2025-12-04 20:59:42 +01:00
Jenkins Server
b1376738c6 Merge remote-tracking branch 'origin/master' into jenkins-build-7 2025-12-04 20:58:38 +01:00
12ww1160
9df1304812 OP#203 add bouncer to installation 2025-12-04 20:58:19 +01:00
Jenkins Server
b85639360a Recommit for updates in build 6 2025-12-04 20:47:27 +01:00
12ww1160
6a8e2f2e35 OP#203 update Readme 2025-12-04 20:46:08 +01:00
12ww1160
88cd596b20 Update file settings.json 2025-12-04 18:55:46 +00:00
Jenkins Server
5bd1295d1f Recommit for updates in build 3 2025-12-04 19:51:48 +01:00
Jenkins Server
fd265a38d3 Merge remote-tracking branch 'origin/master' into jenkins-build-3 2025-12-04 19:50:23 +01:00
12ww1160
b97d83be3b OP#200 replace class names 2025-12-04 19:49:59 +01:00
12ww1160
363f546191 OP#200 add gitea step and push over 2025-12-04 19:43:07 +01:00
12ww1160
bf4a6cccd9 OP#200 add gitea step and push over 2025-12-04 19:41:33 +01:00
12ww1160
fb67adaf7e OP#200 add gitea step and push over 2025-12-04 19:38:10 +01:00
Jenkins
7da2ed7f8f Merge branch 'jenkins-build-57' into 'master'
Auto-merge for build 57

See merge request puppet/postgresql_cd!40
2025-12-04 17:04:29 +00:00
Jenkins Server
86e3636d57 Recommit for updates in build 57 2025-12-04 18:02:43 +01:00
Jenkins Server
2f60ec77a2 Merge remote-tracking branch 'origin/master' into jenkins-build-57 2025-12-04 18:01:38 +01:00
12ww1160
6acaa6d3b2 add variable for idle session timeout 2025-12-04 18:01:19 +01:00
Jenkins
e9e75030ec Merge branch 'jenkins-build-55' into 'master'
Auto-merge for build 55

See merge request puppet/postgresql_cd!39
2025-12-04 16:57:55 +00:00
12ww1160
9bac00de82 add variable for idle session timeout 2025-12-04 17:56:30 +01:00
Jenkins Server
51d084b453 Recommit for updates in build 55 2025-11-21 17:17:30 +01:00
Jenkins Server
9a7e19ef37 Merge remote-tracking branch 'origin/master' into jenkins-build-55 2025-11-21 17:16:19 +01:00
Arne Teuke
c1959854a8 OP#107 add control for extensions https://project.confdroid.com/work_packages/107 - update Readme 2025-11-21 17:15:59 +01:00
Jenkins
c01b1512a8 Merge branch 'jenkins-build-54' into 'master'
Auto-merge for build 54

See merge request puppet/postgresql_cd!38
2025-11-21 16:07:25 +00:00
Jenkins Server
74bd86cba9 Merge remote-tracking branch 'origin/master' into jenkins-build-54 2025-11-21 17:05:33 +01:00
Arne Teuke
6c41a6da8f fix template 2025-11-21 17:05:14 +01:00
Jenkins
b2d2a4a334 Merge branch 'jenkins-build-53' into 'master'
Auto-merge for build 53

See merge request puppet/postgresql_cd!37
2025-11-21 16:02:48 +00:00
Jenkins Server
6ba8b94efb Recommit for updates in build 53 2025-11-21 17:01:21 +01:00
Jenkins Server
b855525b72 Merge remote-tracking branch 'origin/master' into jenkins-build-53 2025-11-21 17:00:08 +01:00
Arne Teuke
c05c081041 fix params 2025-11-21 16:59:50 +01:00
Jenkins
9d1a9c8b58 Merge branch 'jenkins-build-52' into 'master'
Auto-merge for build 52

See merge request puppet/postgresql_cd!36
2025-11-21 15:54:01 +00:00
Jenkins Server
694d145246 Recommit for updates in build 52 2025-11-21 16:53:38 +01:00
Jenkins Server
14caecd624 Merge remote-tracking branch 'origin/master' into jenkins-build-52 2025-11-21 16:52:34 +01:00
Arne Teuke
ef27381ae8 fix params 2025-11-21 16:52:13 +01:00
Jenkins
31746deb11 Merge branch 'jenkins-build-50' into 'master'
Auto-merge for build 50

See merge request puppet/postgresql_cd!35
2025-11-21 15:50:38 +00:00
Arne Teuke
eb5b17b83e testing params 2025-11-21 16:50:07 +01:00
Jenkins Server
20a4022475 Recommit for updates in build 50 2025-11-21 16:47:55 +01:00
Jenkins Server
b115737d2d Merge remote-tracking branch 'origin/master' into jenkins-build-50 2025-11-21 16:46:48 +01:00
Arne Teuke
71f2fd1cd2 testing params 2025-11-21 16:46:25 +01:00
Jenkins
4afe4bcf2b Merge branch 'jenkins-build-49' into 'master'
Auto-merge for build 49

See merge request puppet/postgresql_cd!34
2025-11-21 15:40:19 +00:00
Jenkins
2a3074b9e2 Merge branch 'jenkins-build-48' into 'master'
Auto-merge for build 48

See merge request puppet/postgresql_cd!33
2025-11-21 15:39:58 +00:00
Jenkins
69e62ff8aa Merge branch 'jenkins-build-45' into 'master'
Auto-merge for build 45

See merge request puppet/postgresql_cd!32
2025-11-21 15:39:48 +00:00
Jenkins Server
05ad100b0e Recommit for updates in build 49 2025-11-21 16:39:14 +01:00
Jenkins Server
68a85be0fd Merge remote-tracking branch 'origin/master' into jenkins-build-49 2025-11-21 16:38:08 +01:00
Arne Teuke
fa6c7e487e troubleshooting 2025-11-21 16:37:49 +01:00
Jenkins Server
3ab5d464d2 Recommit for updates in build 48 2025-11-21 16:35:45 +01:00
Jenkins Server
92a435cede Merge remote-tracking branch 'origin/master' into jenkins-build-48 2025-11-21 16:34:39 +01:00
Arne Teuke
e138bba3bf troubleshooting 2025-11-21 16:34:19 +01:00
Arne Teuke
763cca0282 troubleshooting 2025-11-21 16:30:36 +01:00
Arne Teuke
a935d0acc3 troubleshooting 2025-11-21 16:25:43 +01:00
Jenkins Server
06b05fa7aa Recommit for updates in build 45 2025-11-21 16:23:19 +01:00
Jenkins Server
5a6e6f21cf Merge remote-tracking branch 'origin/master' into jenkins-build-45 2025-11-21 16:22:13 +01:00
Arne Teuke
de47309ba2 troubleshooting 2025-11-21 16:21:54 +01:00
Arne Teuke
d4b5dfb523 troubleshooting 2025-11-21 16:19:50 +01:00
Arne Teuke
a83b2b492f troubleshooting 2025-11-21 16:17:38 +01:00
Arne Teuke
f084a35bbb troubleshooting 2025-11-21 16:16:00 +01:00
Arne Teuke
a68dd11dba troubleshooting 2025-11-21 16:12:30 +01:00
Arne Teuke
a0a569d635 troubleshooting 2025-11-21 16:10:29 +01:00
Arne Teuke
1fb0fad22e add support for extensions and disable exporter config so far 2025-11-21 16:03:30 +01:00
Arne Teuke
e6e852dd70 add support for extensions and disable exporter config so far 2025-11-21 16:01:43 +01:00
Arne Teuke
34c1b99b18 add support for extensions and disable exporter config so far 2025-11-21 15:55:19 +01:00
Arne Teuke
9f35472176 add support for extensions and disable exporter config so far 2025-11-21 15:49:37 +01:00
Arne Teuke
4e3b493d17 add support for extensions 2025-11-21 15:45:25 +01:00
Jenkins
79405836bd Merge branch 'jenkins-build-35' into 'master'
Auto-merge for build 35

See merge request puppet/postgresql_cd!31
2025-10-30 13:38:19 +00:00
Jenkins Server
df6c148f9c Recommit for updates in build 35 2025-10-30 14:37:11 +01:00
Jenkins Server
bcadbd325c Merge remote-tracking branch 'origin/master' into jenkins-build-35 2025-10-30 14:35:50 +01:00
Arne Teuke
ca80d70857 switched parameter - https://gitlab.confdroid.com/internal/confdroid_management/-/issues/279 2025-10-30 14:30:26 +01:00
Jenkins
2fd2623e71 Merge branch 'jenkins-build-33' into 'master'
Auto-merge for build 33

See merge request puppet/postgresql_cd!30
2025-10-26 15:57:12 +00:00
Jenkins Server
b60ee9d4f1 Merge remote-tracking branch 'origin/master' into jenkins-build-33 2025-10-26 16:55:31 +01:00
Arne Teuke
d51fafc680 remnove redundant step 2025-10-26 16:55:13 +01:00
Jenkins
cbab5f2cc2 Merge branch 'jenkins-build-32' into 'master'
Auto-merge for build 32

See merge request puppet/postgresql_cd!29
2025-10-26 15:41:56 +00:00
Jenkins Server
3dbc938e12 Merge remote-tracking branch 'origin/master' into jenkins-build-32 2025-10-26 16:36:41 +01:00
Arne Teuke
8388203ef0 update creation of databases 2025-10-26 16:36:21 +01:00
Jenkins
747b9fb3ae Merge branch 'jenkins-build-31' into 'master'
Auto-merge for build 31

See merge request puppet/postgresql_cd!28
2025-10-02 22:19:55 +00:00
Jenkins Server
ba80c358f1 Merge remote-tracking branch 'origin/master' into jenkins-build-31 2025-10-03 00:18:08 +02:00
Arne Teuke
bf4eefc083 add step to grant permissions - https://gitlab.confdroid.com/internal/confdroid_management/-/issues/244 2025-10-03 00:17:36 +02:00
Jenkins
896f28b8f6 Merge branch 'jenkins-build-30' into 'master'
Auto-merge for build 30

See merge request puppet/postgresql_cd!27
2025-10-02 13:26:21 +00:00
Jenkins Server
04b502361f Recommit for updates in build 30 2025-10-02 15:23:59 +02:00
Jenkins Server
dddeb18a5b Merge remote-tracking branch 'origin/master' into jenkins-build-30 2025-10-02 15:23:10 +02:00
Arne Teuke
9a2698e3c5 update Readme - https://gitlab.confdroid.com/internal/confdroid_management/-/issues/239 2025-10-02 15:22:03 +02:00
Jenkins
e7ccb188a1 Merge branch 'jenkins-build-29' into 'master'
Auto-merge for build 29

See merge request puppet/postgresql_cd!26
2025-10-02 13:14:46 +00:00
Jenkins Server
6536ec2d8c Recommit for updates in build 29 2025-10-02 15:14:21 +02:00
Jenkins Server
59df777e02 Merge remote-tracking branch 'origin/master' into jenkins-build-29 2025-10-02 15:13:30 +02:00
Arne Teuke
ccdffca708 add db management - https://gitlab.confdroid.com/internal/confdroid_management/-/issues/239 2025-10-02 15:11:29 +02:00
Jenkins
d3e6b0c4fe Merge branch 'jenkins-build-28' into 'master'
Auto-merge for build 28

See merge request puppet/postgresql_cd!25
2025-10-02 12:21:09 +00:00
Jenkins Server
77bbe70696 Recommit for updates in build 28 2025-10-02 14:18:07 +02:00
Jenkins Server
1f4702bb47 Merge remote-tracking branch 'origin/master' into jenkins-build-28 2025-10-02 14:17:20 +02:00
Arne Teuke
87d838f8be add role management - https://gitlab.confdroid.com/internal/confdroid_management/-/issues/239 2025-10-02 14:14:30 +02:00
Jenkins
855d8f0383 Merge branch 'jenkins-build-27' into 'master'
Auto-merge for build 27

See merge request puppet/postgresql_cd!24
2025-10-01 16:56:21 +00:00
Jenkins Server
5184ce2001 Merge remote-tracking branch 'origin/master' into jenkins-build-27 2025-10-01 18:55:21 +02:00
Arne Teuke
ee67aaa26c remove universal access from pg_hba see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 18:54:45 +02:00
Jenkins
c00b35a88e Merge branch 'jenkins-build-26' into 'master'
Auto-merge for build 26

See merge request puppet/postgresql_cd!23
2025-10-01 16:42:19 +00:00
Jenkins Server
9cfbff7b19 Recommit for updates in build 26 2025-10-01 18:40:35 +02:00
Jenkins Server
e0f816a346 Merge remote-tracking branch 'origin/master' into jenkins-build-26 2025-10-01 18:39:50 +02:00
Arne Teuke
3dfcaa5540 remove reference to pg_hba.conf see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 18:39:16 +02:00
Jenkins
81f1752d0c Merge branch 'jenkins-build-25' into 'master'
Auto-merge for build 25

See merge request puppet/postgresql_cd!22
2025-10-01 16:33:11 +00:00
Jenkins Server
f1b624c45c Recommit for updates in build 25 2025-10-01 18:32:29 +02:00
Jenkins Server
f7f7f194a6 Merge remote-tracking branch 'origin/master' into jenkins-build-25 2025-10-01 18:31:46 +02:00
Arne Teuke
5ff3cbd1b1 fix permissions see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 18:31:18 +02:00
Jenkins
dc04aa4bdf Merge branch 'jenkins-build-24' into 'master'
Auto-merge for build 24

See merge request puppet/postgresql_cd!21
2025-10-01 16:21:21 +00:00
Jenkins
aca33a9367 Merge branch 'jenkins-build-23' into 'master'
Auto-merge for build 23

See merge request puppet/postgresql_cd!20
2025-10-01 16:16:04 +00:00
Jenkins Server
0eb286e89a Merge remote-tracking branch 'origin/master' into jenkins-build-24 2025-10-01 18:16:01 +02:00
Arne Teuke
6ae49bed9c fix variable see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 18:15:22 +02:00
Arne Teuke
3c762c82ff add extra line for space see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 18:14:35 +02:00
Jenkins Server
28306cb6f2 Merge remote-tracking branch 'origin/master' into jenkins-build-23 2025-10-01 17:55:30 +02:00
Arne Teuke
dcc1a9cda8 add extra line for space see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 17:54:59 +02:00
Jenkins
323c2f2c39 Merge branch 'jenkins-build-22' into 'master'
Auto-merge for build 22

See merge request puppet/postgresql_cd!19
2025-10-01 15:53:05 +00:00
Jenkins Server
c8f6a5e22d Merge remote-tracking branch 'origin/master' into jenkins-build-22 2025-10-01 17:37:35 +02:00
Arne Teuke
bedf5e7fd4 add extra line for space see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 17:36:58 +02:00
Jenkins
aaeb874a5c Merge branch 'jenkins-build-21' into 'master'
Auto-merge for build 21

See merge request puppet/postgresql_cd!18
2025-10-01 15:34:55 +00:00
Jenkins Server
da73ef9bd5 Merge remote-tracking branch 'origin/master' into jenkins-build-21 2025-10-01 17:33:40 +02:00
Arne Teuke
0a72d08920 add extra line for space see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 17:33:02 +02:00
Jenkins
8e470df59e Merge branch 'jenkins-build-20' into 'master'
Auto-merge for build 20

See merge request puppet/postgresql_cd!17
2025-10-01 15:30:37 +00:00
Jenkins
bf9c38d349 Merge branch 'jenkins-build-19' into 'master'
Auto-merge for build 19

See merge request puppet/postgresql_cd!16
2025-10-01 15:30:28 +00:00
Jenkins
dd02aab358 Merge branch 'jenkins-build-18' into 'master'
Auto-merge for build 18

See merge request puppet/postgresql_cd!15
2025-10-01 15:30:19 +00:00
Jenkins Server
b940812192 Recommit for updates in build 20 2025-10-01 17:26:09 +02:00
Jenkins Server
0b8c4438a5 Merge remote-tracking branch 'origin/master' into jenkins-build-20 2025-10-01 17:25:21 +02:00
Arne Teuke
265d94c758 update Readme 2025-10-01 17:24:49 +02:00
Jenkins Server
2be1f8a83f Recommit for updates in build 19 2025-10-01 16:33:47 +02:00
Jenkins Server
ba50915331 Merge remote-tracking branch 'origin/master' into jenkins-build-19 2025-10-01 16:33:00 +02:00
Arne Teuke
80e9bc3bb6 remove line with order number to unclutter see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 16:32:26 +02:00
Jenkins Server
d6be3330f6 Recommit for updates in build 18 2025-10-01 15:58:09 +02:00
Jenkins Server
80f9e0d25c Merge remote-tracking branch 'origin/master' into jenkins-build-18 2025-10-01 15:57:25 +02:00
Arne Teuke
01737207e5 fix parameter description see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 15:56:49 +02:00
Jenkins
f35a7b374f Merge branch 'jenkins-build-17' into 'master'
Auto-merge for build 17

See merge request puppet/postgresql_cd!14
2025-10-01 12:17:43 +00:00
Jenkins Server
85c5dd5ee7 Recommit for updates in build 17 2025-10-01 13:58:48 +02:00
Jenkins Server
9424f042ac Merge remote-tracking branch 'origin/master' into jenkins-build-17 2025-10-01 13:58:04 +02:00
Arne Teuke
e3bd0e4265 fix parameter name and location see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 13:57:29 +02:00
Jenkins
d297d85342 Merge branch 'jenkins-build-16' into 'master'
Auto-merge for build 16

See merge request puppet/postgresql_cd!13
2025-10-01 11:47:25 +00:00
Jenkins Server
ed1d040740 Recommit for updates in build 16 2025-10-01 13:47:05 +02:00
Jenkins Server
b3eb7cf25e Merge remote-tracking branch 'origin/master' into jenkins-build-16 2025-10-01 13:46:19 +02:00
Arne Teuke
5ad8d5a244 fix parameter name see https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 2025-10-01 13:45:51 +02:00
Jenkins
abf7183fb8 Merge branch 'jenkins-build-15' into 'master'
Auto-merge for build 15

See merge request puppet/postgresql_cd!12
2025-10-01 11:42:16 +00:00
Jenkins Server
3538ef3d5e Recommit for updates in build 15 2025-10-01 13:40:26 +02:00
Jenkins Server
db49407d90 Merge remote-tracking branch 'origin/master' into jenkins-build-15 2025-10-01 13:39:39 +02:00
Arne Teuke
0d36bfa6b1 https://gitlab.confdroid.com/internal/confdroid_management/-/issues/235 fix ordering 2025-10-01 13:39:11 +02:00
Jenkins
281901a472 Merge branch 'jenkins-build-14' into 'master'
Auto-merge for build 14

See merge request puppet/postgresql_cd!11
2025-10-01 11:34:19 +00:00
Jenkins Server
b25295ccf1 Recommit for updates in build 14 2025-10-01 13:33:52 +02:00
Jenkins
71ee134336 Merge branch 'jenkins-build-13' into 'master'
Auto-merge for build 13

See merge request puppet/postgresql_cd!10
2025-10-01 11:33:32 +00:00
Jenkins Server
bf9302813a Merge remote-tracking branch 'origin/master' into jenkins-build-14 2025-10-01 13:33:09 +02:00
Arne Teuke
38e7bfd843 https://gitlab.confdroid.com/internal/confdroid_management/-/issues/253 update Readme 2025-10-01 13:31:34 +02:00
Jenkins Server
4a8c89ece6 Recommit for updates in build 13 2025-10-01 13:28:29 +02:00
Jenkins Server
5ac0bac6a4 Merge remote-tracking branch 'origin/master' into jenkins-build-13 2025-10-01 13:27:41 +02:00
Arne Teuke
36a3e0034a #235 add pghba define 2025-10-01 13:24:51 +02:00
Jenkins
887c6786df Merge branch 'jenkins-build-12' into 'master'
Auto-merge for build 12

See merge request puppet/postgresql_cd!9
2025-09-28 14:04:11 +00:00
Jenkins Server
87bb865b97 Recommit for updates in build 12 2025-09-28 15:57:02 +02:00
Jenkins Server
48ca7eb67c Merge remote-tracking branch 'origin/master' into jenkins-build-12 2025-09-28 15:56:18 +02:00
Arne Teuke
80afa41f55 ordering 2025-09-28 15:55:34 +02:00
Jenkins
da0ddb9d5b Merge branch 'jenkins-build-11' into 'master'
Auto-merge for build 11

See merge request puppet/postgresql_cd!8
2025-09-28 13:55:21 +00:00
Jenkins Server
c15e6b3618 Recommit for updates in build 11 2025-09-28 15:49:30 +02:00
Jenkins Server
cf0a409d5e Merge remote-tracking branch 'origin/master' into jenkins-build-11 2025-09-28 15:48:49 +02:00
Arne Teuke
73214a1128 add pg_hba rules 2025-09-28 15:47:55 +02:00
Arne Teuke
95347b22bf fix erb 2025-09-28 15:01:53 +02:00
Jenkins
a04d459bd8 Merge branch 'jenkins-build-10' into 'master'
Auto-merge for build 10

See merge request puppet/postgresql_cd!7
2025-09-28 12:30:49 +00:00
Jenkins Server
b3c9203010 Recommit for updates in build 10 2025-09-28 14:30:09 +02:00
Jenkins Server
82b6f9de26 Merge remote-tracking branch 'origin/master' into jenkins-build-10 2025-09-28 14:29:28 +02:00
Arne Teuke
3fb019e059 fix path 2025-09-28 14:28:49 +02:00
Jenkins
4d109d9f63 Merge branch 'jenkins-build-9' into 'master'
Auto-merge for build 9

See merge request puppet/postgresql_cd!6
2025-09-28 12:23:04 +00:00
Jenkins Server
f89fc0988a Recommit for updates in build 9 2025-09-28 14:16:18 +02:00
Jenkins Server
20834e2fe6 Merge remote-tracking branch 'origin/master' into jenkins-build-9 2025-09-28 14:15:38 +02:00
Arne Teuke
1c25a040f2 fix ordering 2025-09-28 14:12:41 +02:00
Jenkins
a312816d49 Merge branch 'jenkins-build-8' into 'master'
Auto-merge for build 8

See merge request puppet/postgresql_cd!5
2025-09-28 12:08:17 +00:00
Jenkins Server
adb80145ce Merge remote-tracking branch 'origin/master' into jenkins-build-8 2025-09-28 14:05:48 +02:00
Arne Teuke
d482191146 fix cert path 2025-09-28 14:05:17 +02:00
Jenkins
cbdb35a5ce Merge branch 'jenkins-build-7' into 'master'
Auto-merge for build 7

See merge request puppet/postgresql_cd!4
2025-09-28 12:02:13 +00:00
Jenkins Server
cacb8a098b Merge remote-tracking branch 'origin/master' into jenkins-build-7 2025-09-28 13:58:38 +02:00
Arne Teuke
e8a87e80ca fix cert path 2025-09-28 13:58:03 +02:00
Jenkins
53d131f920 Merge branch 'jenkins-build-6' into 'master'
Auto-merge for build 6

See merge request puppet/postgresql_cd!3
2025-09-28 11:52:27 +00:00
Jenkins Server
d22b4275a7 Recommit for updates in build 6 2025-09-28 13:49:44 +02:00
Jenkins Server
be3fddfad5 Merge remote-tracking branch 'origin/master' into jenkins-build-6 2025-09-28 13:49:05 +02:00
Arne Teuke
a6427523c6 update postgresql.conf with SSL settings 2025-09-28 13:48:29 +02:00
Jenkins
47309f44fe Merge branch 'jenkins-build-5' into 'master'
Auto-merge for build 5

See merge request puppet/postgresql_cd!2
2025-09-18 09:59:19 +00:00
Jenkins Server
33921ace4e Recommit for updates in build 5 2025-09-18 11:57:18 +02:00
Jenkins Server
c90e17c12a Merge remote-tracking branch 'origin/master' into jenkins-build-5 2025-09-18 11:55:51 +02:00
Arne Teuke
27acabd48b update params to include a package array instead string 2025-09-18 11:54:56 +02:00
Jenkins
2ad1321819 Merge branch 'jenkins-build-4' into 'master'
Auto-merge for build 4

See merge request puppet/postgresql_cd!1
2025-06-24 12:09:14 +00:00
Jenkins Server
d99c5cd77b Merge remote-tracking branch 'origin/master' into jenkins-build-4 2025-06-06 18:15:00 +02:00
Arne Teuke
3acaaa4ad8 add new MR approach 2025-06-06 18:14:41 +02:00
Jenkins Server
86e3453934 Recommit for updates in build 3 2025-05-22 18:49:59 +02:00
Jenkins Server
4ee93b2808 Merge remote-tracking branch 'origin/master' into jenkins-build-3 2025-05-22 18:49:21 +02:00
Jenkins Server
6ae92a9ac1 recommit for updates in build 2 2025-05-16 11:36:56 +02:00
71 changed files with 7194 additions and 267 deletions

2
.gitignore vendored
View File

@@ -3,3 +3,5 @@
Gemfile.lock
FileList
.scannerwork
.vscode
.puppet-lint.rc.puppet-lint.rc.puppet-lint.rc

2
.puppet-lint.rc Normal file
View File

@@ -0,0 +1,2 @@
--no-variable_scope-check
--no-top_scope_facts

53
.vscode/settings.json vendored
View File

@@ -1,53 +0,0 @@
{
"cSpell.words": [
"archivedir",
"autovacuum",
"bgwriter",
"bitmapscan",
"bytea",
"conninfo",
"csvlog",
"csvlogs",
"datestyle",
"ecdh",
"fdatasync",
"geqo",
"hashagg",
"hashjoin",
"hostssl",
"indexonlyscan",
"indexscan",
"initdb",
"intervalstyle",
"keepalives",
"KEEPCNT",
"KEEPIDLE",
"KEEPINTVL",
"keytab",
"llvmjit",
"logfile",
"logfiles",
"maxpages",
"mergejoin",
"mmap",
"multixact",
"naptime",
"nestloop",
"partitionwise",
"pgsql",
"restartpoint",
"seqscan",
"seqscans",
"sysconfdir",
"sysv",
"tablespace",
"tablespaces",
"tidscan",
"timezonesets",
"walsender",
"writethrough",
"xacts",
"xmlbinary",
"xmloption"
]
}

100
Jenkinsfile vendored
View File

@@ -1,100 +0,0 @@
pipeline {
agent {
label 'puppet'
}
post {
always {
deleteDir() /* clean up our workspace */
}
success {
updateGitlabCommitStatus state: 'success'
}
failure {
updateGitlabCommitStatus state: 'failed'
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'support@confdroid.com', sendToIndividuals: true])
}
}
options {
gitLabConnection('gitlab.confdroid.com')
}
stages {
stage('pull master') {
steps {
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
sh '''
git config user.name "Jenkins Server"
git config user.email jenkins@confdroid.com
# Ensure we're on the development branch (triggered by push)
git checkout development
# Create jenkins branch from development
git checkout -b jenkins-build-$BUILD_NUMBER
# Optionally merge master into jenkins to ensure compatibility
git merge origin/master --no-ff || { echo "Merge conflict detected"; exit 1; }
'''
}
}
}
stage('puppet parser') {
steps {
sh '''for file in $(find . -iname \'*.pp\'); do
/opt/puppetlabs/bin/puppet parser validate --color false --render-as s --modulepath=modules $file || exit 1;
done;'''
}
}
stage('check templates') {
steps{
sh '''for file in $(find . -iname \'*.erb\');
do erb -P -x -T "-" $file | ruby -c || exit 1;
done;'''
}
}
stage('puppet-lint') {
steps {
sh '''/usr/local/bin/puppet-lint . \\
--no-variable_scope-check \\
|| { echo "Puppet lint failed"; exit 1; }
'''
}
}
stage('SonarScan') {
steps {
withCredentials([string(credentialsId: 'sonar-token', variable: 'SONAR_TOKEN')]) {
sh '''
/opt/sonar-scanner/bin/sonar-scanner \
-Dsonar.projectKey=postgresql_cd \
-Dsonar.sources=. \
-Dsonar.host.url=https://sonarqube.confdroid.com \
-Dsonar.token=$SONAR_TOKEN
'''
}
}
}
stage('create Puppet documentation') {
steps {
sh '/opt/puppetlabs/bin/puppet strings'
}
}
stage('update repo') {
steps {
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
sh '''
git config user.name "Jenkins Server"
git config user.email jenkins@confdroid.com
git add -A && git commit -am "Recommit for updates in build $BUILD_NUMBER" || echo "No changes to commit"
git push origin HEAD:master
'''
}
}
}
}
}

View File

@@ -1,31 +1,54 @@
# Readme
[![Build Status](https://jenkins.confdroid.com/buildStatus/icon?job=postgresql_cd)](https://jenkins.confdroid.com/job/postfresql_cd/)
[![Build Status](https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_postgresql&style=plastic)](https://jenkins.confdroid.com/job/confdroid_postgresql/)
[![Security Hotspots](https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_postgresql&metric=security_hotspots&token=sqb_34cadd0d17dba89c9735fca0b6cd96c55e22950d)](https://sonarqube.confdroid.com/dashboard?id=confdroid_postgresql)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/grizzlycoda/puppet_collection)
[[_TOC_]]
- [Readme](#readme)
- [Synopsis](#synopsis)
- [WARNING](#warning)
- [Features](#features)
- [Repo Documentation](#repo-documentation)
- [Dependencies](#dependencies)
- [Deployment](#deployment)
- [SELINUX](#selinux)
- [Known Problems](#known-problems)
- [Support](#support)
- [Tests](#tests)
- [Contact Us](#contact-us)
- [Disclaimer](#disclaimer)
## Synopsis
PostgreSQL is a powerful modern open source SQL database server.
`postgresql_cd` is a Puppet module to automate installation, configuration and management of all aspects of PostgreSQL for Puppet 8
`confdroid_postgresql` is a Puppet module to automate installation, configuration and management of all aspects of PostgreSQL(standalone) for Puppet 8
## WARNING
***Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production***
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/grizzly_coda)
## Features
Installation
* install binaries as per given parameters for major and minor version
* initialize the database cluster
- install binaries
- initialize the database cluster
Configuration
* manage directory structure including file system permissions and selinux context
* manage service status
- manage directory structure including file system permissions and selinux context
- manage service status
Optional:
- manage single line entries in pg_hba via define
- manage roles and databases via define (set `$pl_manage_content` to true)
- manage extensions (set `pl_manage_extensions`to `true`)
- install and manage pg_bouncer (set `pl_use_pg_bouncer`to `true`)
- enable SL / TLS manage TLS certificates (set `pl_ssl_enabled`to `true` and populate content externally through variables)
## Repo Documentation
@@ -37,19 +60,19 @@ All dependencies must be included in the catalogue.
## Deployment
* native Puppet deployment
- native Puppet deployment
via site.pp or nodes.pp
```ruby
node 'example.example.net' {
include postgresql_cd
include confdroid_postgresql
}
```
* through Foreman:
- through Foreman:
In order to apply parameters through Foreman, **__postgresql_cd::params__** must be added to the host or host group in question.
In order to apply parameters through Foreman, **confdroid_postgresql::params**- must be added to the host or host group in question.
See [more details about class deployment on Confdroid.com](https://confdroid.com/2017/05/deploying-our-puppet-modules/).
@@ -61,21 +84,24 @@ All files and directories are configured with correct selinux context. If selinu
## Support
* OS: Rocky 9
* Puppet 6 - 8
This module has been developed for and tested with
- OS: Rocky 9
- Puppet 8
## Tests
* Puppet Lint
* excluded tests:
* `--no-variable_scope-check`: not applicable as we are inheriting parameters from params class. the lint check does not distinguish between facts and inherited parameters.
* Puppet Parser
* ERB Template Parser
* Sonar Quality Gate
- Puppet Lint
- excluded tests:
- `--no-variable_scope-check`: not applicable as we are inheriting parameters from params class. the lint check does not distinguish between facts and inherited parameters.
- Puppet Parser
- ERB Template Parser
- Sonar Quality Gate
## Contact Us
[contact Us](https://confdroid.com/contact/)
- [contact Us](https://confdroid.com/contact/)
- [Feedback Portal](https://feedback.confdroid.com)
## Disclaimer

207
doc/_index.html Normal file
View File

@@ -0,0 +1,207 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/common.css" type="text/css" />
<script type="text/javascript">
pathId = null;
relpath = '';
</script>
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1 class="noborder title">Documentation by YARD 0.9.36</h1>
<div id="listing">
<h1 class="alphaindex">Alphabetic Index</h1>
<h2>Puppet Class Listing A-Z</h2>
<table>
<tr>
<td valign='top' width="33%">
<ul id="alpha_C" class="alpha">
<li class="letter">C</li>
<ul>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql.html" title="puppet_classes::confdroid_postgresql (puppet_class)">confdroid_postgresql</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Abouncer_3A_3Abouncer.html" title="puppet_classes::confdroid_postgresql::bouncer::bouncer (puppet_class)">confdroid_postgresql::bouncer::bouncer</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Abouncer_3A_3Aservice.html" title="puppet_classes::confdroid_postgresql::bouncer::service (puppet_class)">confdroid_postgresql::bouncer::service</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Afirewall_3A_3Aiptables.html" title="puppet_classes::confdroid_postgresql::firewall::iptables (puppet_class)">confdroid_postgresql::firewall::iptables</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Aconfig.html" title="puppet_classes::confdroid_postgresql::main::config (puppet_class)">confdroid_postgresql::main::config</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Adirs.html" title="puppet_classes::confdroid_postgresql::main::dirs (puppet_class)">confdroid_postgresql::main::dirs</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Afiles.html" title="puppet_classes::confdroid_postgresql::main::files (puppet_class)">confdroid_postgresql::main::files</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Ainstall.html" title="puppet_classes::confdroid_postgresql::main::install (puppet_class)">confdroid_postgresql::main::install</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aserver_3A_3Ainitdb.html" title="puppet_classes::confdroid_postgresql::server::initdb (puppet_class)">confdroid_postgresql::server::initdb</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aserver_3A_3Apghba_3A_3Apg_hba.html" title="puppet_classes::confdroid_postgresql::server::pghba::pg_hba (puppet_class)">confdroid_postgresql::server::pghba::pg_hba</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aserver_3A_3Aservice.html" title="puppet_classes::confdroid_postgresql::server::service (puppet_class)">confdroid_postgresql::server::service</a></span>
</li>
</ul>
</ul>
</td>
</tr>
</table>
<h2>Defined Type Listing A-Z</h2>
<table>
<tr>
<td valign='top' width="33%">
<ul id="alpha_C" class="alpha">
<li class="letter">C</li>
<ul>
<li>
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Abouncer_3A_3Abouncer_rule.html" title="puppet_defined_types::confdroid_postgresql::bouncer::bouncer_rule (puppet_defined_type)">confdroid_postgresql::bouncer::bouncer_rule</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Aserver_3A_3Adatabases_3A_3Adb_df.html" title="puppet_defined_types::confdroid_postgresql::server::databases::db_df (puppet_defined_type)">confdroid_postgresql::server::databases::db_df</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Aserver_3A_3Apghba_3A_3Apg_hba_rule.html" title="puppet_defined_types::confdroid_postgresql::server::pghba::pg_hba_rule (puppet_defined_type)">confdroid_postgresql::server::pghba::pg_hba_rule</a></span>
</li>
<li>
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Aserver_3A_3Aroles_3A_3Arole_df.html" title="puppet_defined_types::confdroid_postgresql::server::roles::role_df (puppet_defined_type)">confdroid_postgresql::server::roles::role_df</a></span>
</li>
</ul>
</ul>
</td>
</tr>
</table>
<h2>File Listing</h2>
<ul id="files" class="index_inline_list">
<li class="r1"><a href="index.html" title="README">README</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

8
doc/css/common.css Normal file
View File

@@ -0,0 +1,8 @@
/* Ensure the search bar doesn't overlap with links */
.fixed_header {
padding-bottom: 25px;
}
#full_list {
padding-top: 15px;
}

58
doc/css/full_list.css Normal file
View File

@@ -0,0 +1,58 @@
body {
margin: 0;
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
font-size: 13px;
height: 101%;
overflow-x: hidden;
background: #fafafa;
}
h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
.clear { clear: both; }
.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; }
#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; }
#full_list ul { padding: 0; }
#full_list li { padding: 0; margin: 0; list-style: none; }
#full_list li .item { padding: 5px 5px 5px 12px; }
#noresults { padding: 7px 12px; background: #fff; }
#content.insearch #noresults { margin-left: 7px; }
li.collapsed ul { display: none; }
li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
li { color: #888; cursor: pointer; }
li.deprecated { text-decoration: line-through; font-style: italic; }
li.odd { background: #f0f0f0; }
li.even { background: #fafafa; }
.item:hover { background: #ddd; }
li small:before { content: "("; }
li small:after { content: ")"; }
li small.search_info { display: none; }
a, a:visited { text-decoration: none; color: #05a; }
li.clicked > .item { background: #05a; color: #ccc; }
li.clicked > .item a, li.clicked > .item a:visited { color: #eee; }
li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; }
li.collapsed.clicked a.toggle { background-position: top right; }
#search input { border: 1px solid #bbb; border-radius: 3px; }
#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; }
#full_list_nav a, #nav a:visited { color: #358; }
#full_list_nav a:hover { background: transparent; color: #5af; }
#full_list_nav span:after { content: ' | '; }
#full_list_nav span:last-child:after { content: ''; }
#content h1 { margin-top: 0; }
li { white-space: nowrap; cursor: normal; }
li small { display: block; font-size: 0.8em; }
li small:before { content: ""; }
li small:after { content: ""; }
li small.search_info { display: none; }
#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
#content.insearch #search { background-position: center right; }
#search input { width: 110px; }
#full_list.insearch ul { display: block; }
#full_list.insearch .item { display: none; }
#full_list.insearch .found { display: block; padding-left: 11px !important; }
#full_list.insearch li a.toggle { display: none; }
#full_list.insearch li small.search_info { display: block; }

497
doc/css/style.css Normal file
View File

@@ -0,0 +1,497 @@
html {
width: 100%;
height: 100%;
}
body {
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
font-size: 13px;
width: 100%;
margin: 0;
padding: 0;
display: flex;
display: -webkit-flex;
display: -ms-flexbox;
}
#nav {
position: relative;
width: 100%;
height: 100%;
border: 0;
border-right: 1px dotted #eee;
overflow: auto;
}
.nav_wrap {
margin: 0;
padding: 0;
width: 20%;
height: 100%;
position: relative;
display: flex;
display: -webkit-flex;
display: -ms-flexbox;
flex-shrink: 0;
-webkit-flex-shrink: 0;
-ms-flex: 1 0;
}
#resizer {
position: absolute;
right: -5px;
top: 0;
width: 10px;
height: 100%;
cursor: col-resize;
z-index: 9999;
}
#main {
flex: 5 1;
-webkit-flex: 5 1;
-ms-flex: 5 1;
outline: none;
position: relative;
background: #fff;
padding: 1.2em;
padding-top: 0.2em;
box-sizing: border-box;
}
@media (max-width: 920px) {
.nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; }
#resizer { display: none; }
#nav {
z-index: 9999;
background: #fff;
display: none;
position: absolute;
top: 40px;
right: 12px;
width: 500px;
max-width: 80%;
height: 80%;
overflow-y: scroll;
border: 1px solid #999;
border-collapse: collapse;
box-shadow: -7px 5px 25px #aaa;
border-radius: 2px;
}
}
@media (min-width: 920px) {
body { height: 100%; overflow: hidden; }
#main { height: 100%; overflow: auto; }
#search { display: none; }
}
#main img { max-width: 100%; }
h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
h1.title { margin-bottom: 10px; }
h1.alphaindex { margin-top: 0; font-size: 22px; }
h2 {
padding: 0;
padding-bottom: 3px;
border-bottom: 1px #aaa solid;
font-size: 1.4em;
margin: 1.8em 0 0.5em;
position: relative;
}
h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; }
h2 small a {
display: block;
height: 20px;
border: 1px solid #aaa;
border-bottom: 0;
border-top-left-radius: 5px;
background: #f8f8f8;
position: relative;
padding: 2px 7px;
}
.clear { clear: both; }
.inline { display: inline; }
.inline p:first-child { display: inline; }
.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; }
.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt {
color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em;
border-radius: 4px;
}
.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
.docstring h1 { font-size: 1.2em; }
.docstring h2 { font-size: 1.1em; }
.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
.summary_desc .object_link a, .docstring .object_link a {
font-family: monospace; font-size: 1.05em;
color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em;
border-radius: 4px;
}
.rdoc-term { padding-right: 25px; font-weight: bold; }
.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; }
.summary_desc pre.code .object_link a, .docstring pre.code .object_link a {
padding: 0px; background: inherit; color: inherit; border-radius: inherit;
}
/* style for <table> */
#filecontents table, .docstring table { border-collapse: collapse; }
#filecontents table th, #filecontents table td,
.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; }
#filecontents table tr:nth-child(odd),
.docstring table tr:nth-child(odd) { background: #eee; }
#filecontents table tr:nth-child(even),
.docstring table tr:nth-child(even) { background: #fff; }
#filecontents table th, .docstring table th { background: #fff; }
/* style for <ul> */
#filecontents li > p, .docstring li > p { margin: 0px; }
#filecontents ul, .docstring ul { padding-left: 20px; }
/* style for <dl> */
#filecontents dl, .docstring dl { border: 1px solid #ccc; }
#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
#filecontents dd > p, .docstring dd > p { margin: 0px; }
.note {
color: #222;
margin: 20px 0;
padding: 10px;
border: 1px solid #eee;
border-radius: 3px;
display: block;
}
.docstring .note {
border-left-color: #ccc;
border-left-width: 5px;
}
.note.todo { background: #ffffc5; border-color: #ececaa; }
.note.returns_void { background: #efefef; }
.note.deprecated { background: #ffe5e5; border-color: #e9dada; }
.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; }
.note.private { background: #ffffc5; border-color: #ececaa; }
.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
.summary_signature + .note.title { margin-left: 7px; }
h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
.note.title { background: #efefef; }
.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
.note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
.note.title.not_defined_here { background: transparent; border: none; font-style: italic; }
.discussion .note { margin-top: 6px; }
.discussion .note:first-child { margin-top: 0; }
h3.inherited {
font-style: italic;
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
font-weight: normal;
padding: 0;
margin: 0;
margin-top: 12px;
margin-bottom: 3px;
font-size: 13px;
}
p.inherited {
padding: 0;
margin: 0;
margin-left: 25px;
}
.box_info dl {
margin: 0;
border: 0;
width: 100%;
font-size: 1em;
display: flex;
display: -webkit-flex;
display: -ms-flexbox;
}
.box_info dl dt {
flex-shrink: 0;
-webkit-flex-shrink: 1;
-ms-flex-shrink: 1;
width: 100px;
text-align: right;
font-weight: bold;
border: 1px solid #aaa;
border-width: 1px 0px 0px 1px;
padding: 6px 0;
padding-right: 10px;
}
.box_info dl dd {
flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex: 1;
max-width: 420px;
padding: 6px 0;
padding-right: 20px;
border: 1px solid #aaa;
border-width: 1px 1px 0 0;
overflow: hidden;
position: relative;
}
.box_info dl:last-child > * {
border-bottom: 1px solid #aaa;
}
.box_info dl:nth-child(odd) > * { background: #eee; }
.box_info dl:nth-child(even) > * { background: #fff; }
.box_info dl > * { margin: 0; }
ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
.index_inline_list { padding-left: 0; font-size: 1.1em; }
.index_inline_list li {
list-style: none;
display: inline-block;
padding: 0 12px;
line-height: 30px;
margin-bottom: 5px;
}
dl.constants { margin-left: 10px; }
dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
dl.constants.compact dt { display: inline-block; font-weight: normal }
dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
dl.constants .docstring .note:first-child { margin-top: 5px; }
.summary_desc {
margin-left: 32px;
display: block;
font-family: sans-serif;
font-size: 1.1em;
margin-top: 8px;
line-height: 1.5145em;
margin-bottom: 0.8em;
}
.summary_desc tt { font-size: 0.9em; }
dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
dl.constants .discussion *:first-child { margin-top: 0; }
dl.constants .discussion *:last-child { margin-bottom: 0; }
.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; }
.method_details.first { border: 0; margin-top: 5px; }
.method_details.first h3.signature { margin-top: 1em; }
p.signature, h3.signature {
font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
padding: 6px 10px; margin-top: 1em;
background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px;
}
p.signature tt,
h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
p.signature .overload,
h3.signature .overload { display: block; }
p.signature .extras,
h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
p.signature .not_defined_here,
h3.signature .not_defined_here,
p.signature .aliases,
h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
p.signature .aliases .names,
h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; }
.tags .tag_title tt { color: initial; padding: initial; background: initial; }
.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
.tags ul li { margin-bottom: 3px; }
.tags ul .name { font-family: monospace; font-weight: bold; }
.tags ul .note { padding: 3px 6px; }
.tags { margin-bottom: 12px; }
.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; }
.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; }
.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; }
.tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
.tags .overload .overload_item .signature {
padding: 2px 8px;
background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px;
}
.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
.tags .overload .docstring { margin-top: 15px; }
.defines { display: none; }
#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
.showSource { font-size: 0.9em; }
.showSource a, .showSource a:visited { text-decoration: none; color: #666; }
#content a, #content a:visited { text-decoration: none; color: #05a; }
#content a:hover { background: #ffffa5; }
ul.summary {
list-style: none;
font-family: monospace;
font-size: 1em;
line-height: 1.5em;
padding-left: 0px;
}
ul.summary a, ul.summary a:visited {
text-decoration: none; font-size: 1.1em;
}
ul.summary li { margin-bottom: 5px; }
.summary_signature { padding: 4px 8px; background: #f8f8f8; border: 1px solid #f0f0f0; border-radius: 5px; }
.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; }
.summary_signature.deprecated { background: #ffe5e5; border-color: #e9dada; }
ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
#content .summary_signature:hover a,
#content .summary_signature:hover a:visited {
background: transparent;
color: #049;
}
p.inherited a { font-family: monospace; font-size: 0.9em; }
p.inherited { word-spacing: 5px; font-size: 1.2em; }
p.children { font-size: 1.2em; }
p.children a { font-size: 0.9em; }
p.children strong { font-size: 0.8em; }
p.children strong.modules { padding-left: 5px; }
ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHtJREFUeNqMzrEJAkEURdGzuhgZbSoYWcAWoBVsB4JgZAGmphsZCZYzTQgWNCYrDN9RvMmHx+X916SUBFbo8CzD1idXrLErw1mQttgXtyrOcQ/Ny5p4Qh+2XqLYYazsPWNTiuMkRxa4vcV+evuNAUOLIx5+c2hyzv7hNQC67Q+/HHmlEwAAAABJRU5ErkJggg==) no-repeat top center; }
ul.fullTree li:first-child { padding-top: 0; background: transparent; }
ul.fullTree li:last-child { padding-bottom: 0; }
.showAll ul.fullTree { display: block; }
.showAll .inheritName { display: none; }
#search { position: absolute; right: 12px; top: 0px; z-index: 9000; }
#search a {
display: block; float: left;
padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a;
border: 1px solid #d8d8e5;
border-bottom-left-radius: 3px; border-bottom-right-radius: 3px;
background: #F1F8FF;
box-shadow: -1px 1px 3px #ddd;
}
#search a:hover { background: #f5faff; color: #06b; fill: #06b; }
#search a.active {
background: #568; padding-bottom: 20px; color: #fff; fill: #fff;
border: 1px solid #457;
border-top-left-radius: 5px; border-top-right-radius: 5px;
}
#search a.inactive { color: #999; fill: #999; }
.inheritanceTree, .toggleDefines {
float: right;
border-left: 1px solid #aaa;
position: absolute; top: 0; right: 0;
height: 100%;
background: #f6f6f6;
padding: 5px;
min-width: 55px;
text-align: center;
}
#menu { font-size: 1.3em; color: #bbb; }
#menu .title, #menu a { font-size: 0.7em; }
#menu .title a { font-size: 1em; }
#menu .title { color: #555; }
#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
#menu a:hover { color: #05a; }
#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
#footer a:hover { color: #05a; }
#listing ul.alpha { font-size: 1.1em; }
#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
#listing ul.alpha ul { margin: 0; padding-left: 15px; }
#listing ul small { color: #666; font-size: 0.7em; }
li.r1 { background: #f0f0f0; }
li.r2 { background: #fafafa; }
#content ul.summary li.deprecated .summary_signature a,
#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
#toc {
position: relative;
float: right;
overflow-x: auto;
right: -3px;
margin-left: 20px;
margin-bottom: 20px;
padding: 20px; padding-right: 30px;
max-width: 300px;
z-index: 5000;
background: #fefefe;
border: 1px solid #ddd;
box-shadow: -2px 2px 6px #bbb;
}
#toc .title { margin: 0; }
#toc ol { padding-left: 1.8em; }
#toc li { font-size: 1.1em; line-height: 1.7em; }
#toc > ol > li { font-size: 1.1em; font-weight: bold; }
#toc ol > li > ol { font-size: 0.9em; }
#toc ol ol > li > ol { padding-left: 2.3em; }
#toc ol + li { margin-top: 0.3em; }
#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; }
#toc.hidden:hover { background: #fafafa; }
#filecontents h1 + #toc.nofloat { margin-top: 0; }
@media (max-width: 560px) {
#toc {
margin-left: 0;
margin-top: 16px;
float: none;
max-width: none;
}
}
/* syntax highlighting */
.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
#filecontents pre.code, .docstring pre.code { display: block; }
.source_code .lines { padding-right: 12px; color: #555; text-align: right; }
#filecontents pre.code, .docstring pre.code,
.tags pre.example {
padding: 9px 14px;
margin-top: 4px;
border: 1px solid #e1e1e8;
background: #f7f7f9;
border-radius: 4px;
font-size: 1em;
overflow-x: auto;
line-height: 1.2em;
}
pre.code { color: #000; tab-size: 2; }
pre.code .info.file { color: #555; }
pre.code .val { color: #036A07; }
pre.code .tstring_content,
pre.code .heredoc_beg, pre.code .heredoc_end,
pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep,
pre.code .words_beg, pre.code .words_end, pre.code .words_sep,
pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep,
pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep,
pre.code .tstring, pre.code .dstring { color: #036A07; }
pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
pre.code .dot + pre.code .id,
pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
pre.code .comment { color: #0066FF; }
pre.code .const, pre.code .constant { color: #585CF6; }
pre.code .label,
pre.code .symbol { color: #C5060B; }
pre.code .kw,
pre.code .rubyid_require,
pre.code .rubyid_extend,
pre.code .rubyid_include { color: #0000FF; }
pre.code .ivar { color: #318495; }
pre.code .gvar,
pre.code .rubyid_backref,
pre.code .rubyid_nth_ref { color: #6D79DE; }
pre.code .regexp, .dregexp { color: #036A07; }
pre.code a { border-bottom: 1px dotted #bbf; }
/* inline code */
*:not(pre) > code {
padding: 1px 3px 1px 3px;
border: 1px solid #E1E1E8;
background: #F7F7F9;
border-radius: 4px;
}
/* Color fix for links */
#content .summary_desc pre.code .id > .object_link a, /* identifier */
#content .docstring pre.code .id > .object_link a { color: #0085FF; }
#content .summary_desc pre.code .const > .object_link a, /* constant */
#content .docstring pre.code .const > .object_link a { color: #585CF6; }

209
doc/file.README.html Normal file
View File

@@ -0,0 +1,209 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
File: README
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "";
relpath = '';
</script>
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="file_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="_index.html">Index</a> &raquo;
<span class="title">File: README</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><div id='filecontents'>
<h1 id="label-Readme">Readme</h1>
<p><a href="https://jenkins.confdroid.com/job/confdroid_postgresql/"><img src="https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_postgresql&amp;style=plastic"></a> <a href="https://sonarqube.confdroid.com/dashboard?id=confdroid_postgresql"><img src="https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_postgresql&amp;metric=security_hotspots&amp;token=sqb_34cadd0d17dba89c9735fca0b6cd96c55e22950d"></a> <a href="https://deepwiki.com/grizzlycoda/puppet_collection"><img src="https://deepwiki.com/badge.svg"></a></p>
<ul><li>
<p><a href="#readme">Readme</a></p>
</li><li>
<p><a href="#synopsis">Synopsis</a></p>
</li><li>
<p><a href="#warning">WARNING</a></p>
</li><li>
<p><a href="#features">Features</a></p>
</li><li>
<p><a href="#repo-documentation">Repo Documentation</a></p>
</li><li>
<p><a href="#dependencies">Dependencies</a></p>
</li><li>
<p><a href="#deployment">Deployment</a></p>
</li><li>
<p><a href="#selinux">SELINUX</a></p>
</li><li>
<p><a href="#known-problems">Known Problems</a></p>
</li><li>
<p><a href="#support">Support</a></p>
</li><li>
<p><a href="#tests">Tests</a></p>
</li><li>
<p><a href="#contact-us">Contact Us</a></p>
</li><li>
<p><a href="#disclaimer">Disclaimer</a></p>
</li></ul>
<h2 id="label-Synopsis">Synopsis</h2>
<p>PostgreSQL is a powerful modern open source SQL database server.</p>
<p><code>confdroid_postgresql</code> is a Puppet module to automate installation, configuration and management of all aspects of PostgreSQL(standalone) for Puppet 8</p>
<h2 id="label-WARNING">WARNING</h2>
<p><strong><em>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production</em></strong></p>
<p><a href="https://www.buymeacoffee.com/grizzly_coda"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png"></a></p>
<h2 id="label-Features">Features</h2>
<p>Installation</p>
<ul><li>
<p>install binaries</p>
</li><li>
<p>initialize the database cluster</p>
</li></ul>
<p>Configuration</p>
<ul><li>
<p>manage directory structure including file system permissions and selinux context</p>
</li><li>
<p>manage service status</p>
</li></ul>
<p>Optional:</p>
<ul><li>
<p>manage single line entries in pg_hba via define</p>
</li><li>
<p>manage roles and databases via define (set <code>$pl_manage_content</code> to true)</p>
</li><li>
<p>manage extensions (set <code>pl_manage_extensions</code>to <code>true</code>)</p>
</li><li>
<p>install and manage pg_bouncer (set <code>pl_use_pg_bouncer</code>to <code>true</code>)</p>
</li><li>
<p>enable SL / TLS manage TLS certificates (set <code>pl_ssl_enabled</code>to <code>true</code> and populate content externally through variables)</p>
</li></ul>
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
<p>See the full Puppet documentation including parameters in <code>docs/index.html</code>.</p>
<h2 id="label-Dependencies">Dependencies</h2>
<p>All dependencies must be included in the catalogue.</p>
<h2 id="label-Deployment">Deployment</h2>
<ul><li>
<p>native Puppet deployment</p>
</li></ul>
<p>via site.pp or nodes.pp</p>
<pre class="code ruby"><code class="ruby">node &#39;example.example.net&#39; {
include confdroid_postgresql
}
</code></pre>
<ul><li>
<p>through Foreman:</p>
</li></ul>
<p>In order to apply parameters through Foreman, <strong>confdroid_postgresql::params</strong>- must be added to the host or host group in question.</p>
<p>See <a href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">more details about class deployment on Confdroid.com</a>.</p>
<h2 id="label-SELINUX">SELINUX</h2>
<p>All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored.</p>
<h2 id="label-Known+Problems">Known Problems</h2>
<h2 id="label-Support">Support</h2>
<p>This module has been developed for and tested with</p>
<ul><li>
<p>OS: Rocky 9</p>
</li><li>
<p>Puppet 8</p>
</li></ul>
<h2 id="label-Tests">Tests</h2>
<ul><li>
<p>Puppet Lint</p>
</li><li>
<p>excluded tests:</p>
<ul><li>
<p><code>--no-variable_scope-check</code>: not applicable as we are inheriting parameters from params class. the lint check does not distinguish between facts and inherited parameters.</p>
</li></ul>
</li><li>
<p>Puppet Parser</p>
</li><li>
<p>ERB Template Parser</p>
</li><li>
<p>Sonar Quality Gate</p>
</li></ul>
<h2 id="label-Contact+Us">Contact Us</h2>
<ul><li>
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
</li><li>
<p><a href="https://feedback.confdroid.com">Feedback Portal</a></p>
</li></ul>
<h2 id="label-Disclaimer">Disclaimer</h2>
<p>ConfDroid as entity is entirely independent from Puppet. We provide custom configuration modules, written for specific purposes and specific environments. The modules are tested and supported only as documented, and require testing in designated environments (i.e. lab or development environments) for parameter tuning etc. before deploying into production environments.</p>
</div></div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

22
doc/frames.html Normal file
View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Documentation by YARD 0.9.36</title>
</head>
<script type="text/javascript">
var mainUrl = 'index.html';
try {
var match = decodeURIComponent(window.location.hash).match(/^#!(.+)/);
var name = match ? match[1] : mainUrl;
var url = new URL(name, location.href);
window.top.location.replace(url.origin === location.origin ? name : mainUrl);
} catch (e) {
window.top.location.replace(mainUrl);
}
</script>
<noscript>
<h1>Oops!</h1>
<h2>YARD requires JavaScript!</h2>
</noscript>
</html>

209
doc/index.html Normal file
View File

@@ -0,0 +1,209 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
File: README
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "";
relpath = '';
</script>
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="_index.html">Index</a> &raquo;
<span class="title">File: README</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><div id='filecontents'>
<h1 id="label-Readme">Readme</h1>
<p><a href="https://jenkins.confdroid.com/job/confdroid_postgresql/"><img src="https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_postgresql&amp;style=plastic"></a> <a href="https://sonarqube.confdroid.com/dashboard?id=confdroid_postgresql"><img src="https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_postgresql&amp;metric=security_hotspots&amp;token=sqb_34cadd0d17dba89c9735fca0b6cd96c55e22950d"></a> <a href="https://deepwiki.com/grizzlycoda/puppet_collection"><img src="https://deepwiki.com/badge.svg"></a></p>
<ul><li>
<p><a href="#readme">Readme</a></p>
</li><li>
<p><a href="#synopsis">Synopsis</a></p>
</li><li>
<p><a href="#warning">WARNING</a></p>
</li><li>
<p><a href="#features">Features</a></p>
</li><li>
<p><a href="#repo-documentation">Repo Documentation</a></p>
</li><li>
<p><a href="#dependencies">Dependencies</a></p>
</li><li>
<p><a href="#deployment">Deployment</a></p>
</li><li>
<p><a href="#selinux">SELINUX</a></p>
</li><li>
<p><a href="#known-problems">Known Problems</a></p>
</li><li>
<p><a href="#support">Support</a></p>
</li><li>
<p><a href="#tests">Tests</a></p>
</li><li>
<p><a href="#contact-us">Contact Us</a></p>
</li><li>
<p><a href="#disclaimer">Disclaimer</a></p>
</li></ul>
<h2 id="label-Synopsis">Synopsis</h2>
<p>PostgreSQL is a powerful modern open source SQL database server.</p>
<p><code>confdroid_postgresql</code> is a Puppet module to automate installation, configuration and management of all aspects of PostgreSQL(standalone) for Puppet 8</p>
<h2 id="label-WARNING">WARNING</h2>
<p><strong><em>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production</em></strong></p>
<p><a href="https://www.buymeacoffee.com/grizzly_coda"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png"></a></p>
<h2 id="label-Features">Features</h2>
<p>Installation</p>
<ul><li>
<p>install binaries</p>
</li><li>
<p>initialize the database cluster</p>
</li></ul>
<p>Configuration</p>
<ul><li>
<p>manage directory structure including file system permissions and selinux context</p>
</li><li>
<p>manage service status</p>
</li></ul>
<p>Optional:</p>
<ul><li>
<p>manage single line entries in pg_hba via define</p>
</li><li>
<p>manage roles and databases via define (set <code>$pl_manage_content</code> to true)</p>
</li><li>
<p>manage extensions (set <code>pl_manage_extensions</code>to <code>true</code>)</p>
</li><li>
<p>install and manage pg_bouncer (set <code>pl_use_pg_bouncer</code>to <code>true</code>)</p>
</li><li>
<p>enable SL / TLS manage TLS certificates (set <code>pl_ssl_enabled</code>to <code>true</code> and populate content externally through variables)</p>
</li></ul>
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
<p>See the full Puppet documentation including parameters in <code>docs/index.html</code>.</p>
<h2 id="label-Dependencies">Dependencies</h2>
<p>All dependencies must be included in the catalogue.</p>
<h2 id="label-Deployment">Deployment</h2>
<ul><li>
<p>native Puppet deployment</p>
</li></ul>
<p>via site.pp or nodes.pp</p>
<pre class="code ruby"><code class="ruby">node &#39;example.example.net&#39; {
include confdroid_postgresql
}
</code></pre>
<ul><li>
<p>through Foreman:</p>
</li></ul>
<p>In order to apply parameters through Foreman, <strong>confdroid_postgresql::params</strong>- must be added to the host or host group in question.</p>
<p>See <a href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">more details about class deployment on Confdroid.com</a>.</p>
<h2 id="label-SELINUX">SELINUX</h2>
<p>All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored.</p>
<h2 id="label-Known+Problems">Known Problems</h2>
<h2 id="label-Support">Support</h2>
<p>This module has been developed for and tested with</p>
<ul><li>
<p>OS: Rocky 9</p>
</li><li>
<p>Puppet 8</p>
</li></ul>
<h2 id="label-Tests">Tests</h2>
<ul><li>
<p>Puppet Lint</p>
</li><li>
<p>excluded tests:</p>
<ul><li>
<p><code>--no-variable_scope-check</code>: not applicable as we are inheriting parameters from params class. the lint check does not distinguish between facts and inherited parameters.</p>
</li></ul>
</li><li>
<p>Puppet Parser</p>
</li><li>
<p>ERB Template Parser</p>
</li><li>
<p>Sonar Quality Gate</p>
</li></ul>
<h2 id="label-Contact+Us">Contact Us</h2>
<ul><li>
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
</li><li>
<p><a href="https://feedback.confdroid.com">Feedback Portal</a></p>
</li></ul>
<h2 id="label-Disclaimer">Disclaimer</h2>
<p>ConfDroid as entity is entirely independent from Puppet. We provide custom configuration modules, written for specific purposes and specific environments. The modules are tested and supported only as documented, and require testing in designated environments (i.e. lab or development environments) for parameter tuning etc. before deploying into production environments.</p>
</div></div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

314
doc/js/app.js Normal file
View File

@@ -0,0 +1,314 @@
(function() {
var localStorage = {}, sessionStorage = {};
try { localStorage = window.localStorage; } catch (e) { }
try { sessionStorage = window.sessionStorage; } catch (e) { }
function createSourceLinks() {
$('.method_details_list .source_code').
before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
$('.toggleSource').toggle(function() {
$(this).parent().nextAll('.source_code').slideDown(100);
$(this).text("Hide source");
},
function() {
$(this).parent().nextAll('.source_code').slideUp(100);
$(this).text("View source");
});
}
function createDefineLinks() {
var tHeight = 0;
$('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
$('.toggleDefines').toggle(function() {
tHeight = $(this).parent().prev().height();
$(this).prev().css('display', 'inline');
$(this).parent().prev().height($(this).parent().height());
$(this).text("(less)");
},
function() {
$(this).prev().hide();
$(this).parent().prev().height(tHeight);
$(this).text("more...");
});
}
function createFullTreeLinks() {
var tHeight = 0;
$('.inheritanceTree').toggle(function() {
tHeight = $(this).parent().prev().height();
$(this).parent().toggleClass('showAll');
$(this).text("(hide)");
$(this).parent().prev().height($(this).parent().height());
},
function() {
$(this).parent().toggleClass('showAll');
$(this).parent().prev().height(tHeight);
$(this).text("show all");
});
}
function searchFrameButtons() {
$('.full_list_link').click(function() {
toggleSearchFrame(this, $(this).attr('href'));
return false;
});
window.addEventListener('message', function(e) {
if (e.data === 'navEscape') {
$('#nav').slideUp(100);
$('#search a').removeClass('active inactive');
$(window).focus();
}
});
$(window).resize(function() {
if ($('#search:visible').length === 0) {
$('#nav').removeAttr('style');
$('#search a').removeClass('active inactive');
$(window).focus();
}
});
}
function toggleSearchFrame(id, link) {
var frame = $('#nav');
$('#search a').removeClass('active').addClass('inactive');
if (frame.attr('src') === link && frame.css('display') !== "none") {
frame.slideUp(100);
$('#search a').removeClass('active inactive');
}
else {
$(id).addClass('active').removeClass('inactive');
if (frame.attr('src') !== link) frame.attr('src', link);
frame.slideDown(100);
}
}
function linkSummaries() {
$('.summary_signature').click(function() {
document.location = $(this).find('a').attr('href');
});
}
function summaryToggle() {
$('.summary_toggle').click(function(e) {
e.preventDefault();
localStorage.summaryCollapsed = $(this).text();
$('.summary_toggle').each(function() {
$(this).text($(this).text() == "collapse" ? "expand" : "collapse");
var next = $(this).parent().parent().nextAll('ul.summary').first();
if (next.hasClass('compact')) {
next.toggle();
next.nextAll('ul.summary').first().toggle();
}
else if (next.hasClass('summary')) {
var list = $('<ul class="summary compact" />');
list.html(next.html());
list.find('.summary_desc, .note').remove();
list.find('a').each(function() {
$(this).html($(this).find('strong').html());
$(this).parent().html($(this)[0].outerHTML);
});
next.before(list);
next.toggle();
}
});
return false;
});
if (localStorage.summaryCollapsed == "collapse") {
$('.summary_toggle').first().click();
} else { localStorage.summaryCollapsed = "expand"; }
}
function constantSummaryToggle() {
$('.constants_summary_toggle').click(function(e) {
e.preventDefault();
localStorage.summaryCollapsed = $(this).text();
$('.constants_summary_toggle').each(function() {
$(this).text($(this).text() == "collapse" ? "expand" : "collapse");
var next = $(this).parent().parent().nextAll('dl.constants').first();
if (next.hasClass('compact')) {
next.toggle();
next.nextAll('dl.constants').first().toggle();
}
else if (next.hasClass('constants')) {
var list = $('<dl class="constants compact" />');
list.html(next.html());
list.find('dt').each(function() {
$(this).addClass('summary_signature');
$(this).text( $(this).text().split('=')[0]);
if ($(this).has(".deprecated").length) {
$(this).addClass('deprecated');
};
});
// Add the value of the constant as "Tooltip" to the summary object
list.find('pre.code').each(function() {
console.log($(this).parent());
var dt_element = $(this).parent().prev();
var tooltip = $(this).text();
if (dt_element.hasClass("deprecated")) {
tooltip = 'Deprecated. ' + tooltip;
};
dt_element.attr('title', tooltip);
});
list.find('.docstring, .tags, dd').remove();
next.before(list);
next.toggle();
}
});
return false;
});
if (localStorage.summaryCollapsed == "collapse") {
$('.constants_summary_toggle').first().click();
} else { localStorage.summaryCollapsed = "expand"; }
}
function generateTOC() {
if ($('#filecontents').length === 0) return;
var _toc = $('<ol class="top"></ol>');
var show = false;
var toc = _toc;
var counter = 0;
var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
var i;
var curli;
if ($('#filecontents h1').length > 1) tags.unshift('h1');
for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
var lastTag = parseInt(tags[0][1], 10);
$(tags.join(', ')).each(function() {
if ($(this).parents('.method_details .docstring').length != 0) return;
if (this.id == "filecontents") return;
show = true;
var thisTag = parseInt(this.tagName[1], 10);
if (this.id.length === 0) {
var proposedId = $(this).attr('toc-id');
if (typeof(proposedId) != "undefined") this.id = proposedId;
else {
var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
this.id = proposedId;
}
}
if (thisTag > lastTag) {
for (i = 0; i < thisTag - lastTag; i++) {
if ( typeof(curli) == "undefined" ) {
curli = $('<li/>');
toc.append(curli);
}
toc = $('<ol/>');
curli.append(toc);
curli = undefined;
}
}
if (thisTag < lastTag) {
for (i = 0; i < lastTag - thisTag; i++) {
toc = toc.parent();
toc = toc.parent();
}
}
var title = $(this).attr('toc-title');
if (typeof(title) == "undefined") title = $(this).text();
curli =$('<li><a href="#' + this.id + '">' + title + '</a></li>');
toc.append(curli);
lastTag = thisTag;
});
if (!show) return;
html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></p></div>';
$('#content').prepend(html);
$('#toc').append(_toc);
$('#toc .hide_toc').toggle(function() {
$('#toc .top').slideUp('fast');
$('#toc').toggleClass('hidden');
$('#toc .title small').toggle();
}, function() {
$('#toc .top').slideDown('fast');
$('#toc').toggleClass('hidden');
$('#toc .title small').toggle();
});
}
function navResizeFn(e) {
if (e.which !== 1) {
navResizeFnStop();
return;
}
sessionStorage.navWidth = e.pageX.toString();
$('.nav_wrap').css('width', e.pageX);
$('.nav_wrap').css('-ms-flex', 'inherit');
}
function navResizeFnStop() {
$(window).unbind('mousemove', navResizeFn);
window.removeEventListener('message', navMessageFn, false);
}
function navMessageFn(e) {
if (e.data.action === 'mousemove') navResizeFn(e.data.event);
if (e.data.action === 'mouseup') navResizeFnStop();
}
function navResizer() {
$('#resizer').mousedown(function(e) {
e.preventDefault();
$(window).mousemove(navResizeFn);
window.addEventListener('message', navMessageFn, false);
});
$(window).mouseup(navResizeFnStop);
if (sessionStorage.navWidth) {
navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
}
}
function navExpander() {
var done = false, timer = setTimeout(postMessage, 500);
function postMessage() {
if (done) return;
clearTimeout(timer);
var opts = { action: 'expand', path: pathId };
document.getElementById('nav').contentWindow.postMessage(opts, '*');
done = true;
}
window.addEventListener('message', function(event) {
if (event.data === 'navReady') postMessage();
return false;
}, false);
}
function mainFocus() {
var hash = window.location.hash;
if (hash !== '' && $(hash)[0]) {
$(hash)[0].scrollIntoView();
}
setTimeout(function() { $('#main').focus(); }, 10);
}
function navigationChange() {
// This works around the broken anchor navigation with the YARD template.
window.onpopstate = function() {
var hash = window.location.hash;
if (hash !== '' && $(hash)[0]) {
$(hash)[0].scrollIntoView();
}
};
}
$(document).ready(function() {
navResizer();
navExpander();
createSourceLinks();
createDefineLinks();
createFullTreeLinks();
searchFrameButtons();
linkSummaries();
summaryToggle();
constantSummaryToggle();
generateTOC();
mainFocus();
navigationChange();
});
})();

216
doc/js/full_list.js Normal file
View File

@@ -0,0 +1,216 @@
(function() {
var $clicked = $(null);
var searchTimeout = null;
var searchCache = [];
var caseSensitiveMatch = false;
var ignoreKeyCodeMin = 8;
var ignoreKeyCodeMax = 46;
var commandKey = 91;
RegExp.escape = function(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}
function escapeShortcut() {
$(document).keydown(function(evt) {
if (evt.which == 27) {
window.parent.postMessage('navEscape', '*');
}
});
}
function navResizer() {
$(window).mousemove(function(e) {
window.parent.postMessage({
action: 'mousemove', event: {pageX: e.pageX, which: e.which}
}, '*');
}).mouseup(function(e) {
window.parent.postMessage({action: 'mouseup'}, '*');
});
window.parent.postMessage("navReady", "*");
}
function clearSearchTimeout() {
clearTimeout(searchTimeout);
searchTimeout = null;
}
function enableLinks() {
// load the target page in the parent window
$('#full_list li').on('click', function(evt) {
$('#full_list li').removeClass('clicked');
$clicked = $(this);
$clicked.addClass('clicked');
evt.stopPropagation();
if (evt.target.tagName === 'A') return true;
var elem = $clicked.find('> .item .object_link a')[0];
var e = evt.originalEvent;
var newEvent = new MouseEvent(evt.originalEvent.type);
newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
elem.dispatchEvent(newEvent);
evt.preventDefault();
return false;
});
}
function enableToggles() {
// show/hide nested classes on toggle click
$('#full_list a.toggle').on('click', function(evt) {
evt.stopPropagation();
evt.preventDefault();
$(this).parent().parent().toggleClass('collapsed');
highlight();
});
}
function populateSearchCache() {
$('#full_list li .item').each(function() {
var $node = $(this);
var $link = $node.find('.object_link a');
if ($link.length > 0) {
searchCache.push({
node: $node,
link: $link,
name: $link.text(),
fullName: $link.attr('title').split(' ')[0]
});
}
});
}
function enableSearch() {
$('#search input').keyup(function(event) {
if (ignoredKeyPress(event)) return;
if (this.value === "") {
clearSearch();
} else {
performSearch(this.value);
}
});
$('#full_list').after("<div id='noresults' style='display:none'></div>");
}
function ignoredKeyPress(event) {
if (
(event.keyCode > ignoreKeyCodeMin && event.keyCode < ignoreKeyCodeMax) ||
(event.keyCode == commandKey)
) {
return true;
} else {
return false;
}
}
function clearSearch() {
clearSearchTimeout();
$('#full_list .found').removeClass('found').each(function() {
var $link = $(this).find('.object_link a');
$link.text($link.text());
});
$('#full_list, #content').removeClass('insearch');
$clicked.parents().removeClass('collapsed');
highlight();
}
function performSearch(searchString) {
clearSearchTimeout();
$('#full_list, #content').addClass('insearch');
$('#noresults').text('').hide();
partialSearch(searchString, 0);
}
function partialSearch(searchString, offset) {
var lastRowClass = '';
var i = null;
for (i = offset; i < Math.min(offset + 50, searchCache.length); i++) {
var item = searchCache[i];
var searchName = (searchString.indexOf('::') != -1 ? item.fullName : item.name);
var matchString = buildMatchString(searchString);
var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i");
if (searchName.match(matchRegexp) == null) {
item.node.removeClass('found');
item.link.text(item.link.text());
}
else {
item.node.addClass('found');
item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
item.link.html(item.name.replace(matchRegexp, "<strong>$&</strong>"));
}
}
if(i == searchCache.length) {
searchDone();
} else {
searchTimeout = setTimeout(function() {
partialSearch(searchString, i);
}, 0);
}
}
function searchDone() {
searchTimeout = null;
highlight();
if ($('#full_list li:visible').size() === 0) {
$('#noresults').text('No results were found.').hide().fadeIn();
} else {
$('#noresults').text('').hide();
}
$('#content').removeClass('insearch');
}
function buildMatchString(searchString, event) {
caseSensitiveMatch = searchString.match(/[A-Z]/) != null;
var regexSearchString = RegExp.escape(searchString);
if (caseSensitiveMatch) {
regexSearchString += "|" +
$.map(searchString.split(''), function(e) { return RegExp.escape(e); }).
join('.+?');
}
return regexSearchString;
}
function highlight() {
$('#full_list li:visible').each(function(n) {
$(this).removeClass('even odd').addClass(n % 2 == 0 ? 'odd' : 'even');
});
}
/**
* Expands the tree to the target element and its immediate
* children.
*/
function expandTo(path) {
var $target = $(document.getElementById('object_' + path));
$target.addClass('clicked');
$target.removeClass('collapsed');
$target.parentsUntil('#full_list', 'li').removeClass('collapsed');
if($target[0]) {
window.scrollTo(window.scrollX, $target.offset().top - 250);
highlight();
}
}
function windowEvents(event) {
var msg = event.data;
if (msg.action === "expand") {
expandTo(msg.path);
}
return false;
}
window.addEventListener("message", windowEvents, false);
$(document).ready(function() {
escapeShortcut();
navResizer();
enableLinks();
enableToggles();
populateSearchCache();
enableSearch();
});
})();

4
doc/js/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

131
doc/puppet_class_list.html Normal file
View File

@@ -0,0 +1,131 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" />
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
<title>Puppet Class List</title>
<base id="base_target" target="_parent" />
</head>
<body>
<div id="content">
<div class="fixed_header">
<h1 id="full_list_header">Puppet Class List</h1>
<div id="full_list_nav">
<span><a target="_self" href="puppet_class_list.html">
Puppet Classes
</a></span>
<span><a target="_self" href="puppet_defined_type_list.html">
Defined Types
</a></span>
</div>
<div id="search">Search: <input type="text" /></div>
</div>
<ul id="full_list" class="puppet_class">
<li id="object_puppet_classes::confdroid_postgresql" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql.html" title="puppet_classes::confdroid_postgresql (puppet_class)">confdroid_postgresql</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::bouncer::bouncer" class="even">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Abouncer_3A_3Abouncer.html" title="puppet_classes::confdroid_postgresql::bouncer::bouncer (puppet_class)">confdroid_postgresql::bouncer::bouncer</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::bouncer::service" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Abouncer_3A_3Aservice.html" title="puppet_classes::confdroid_postgresql::bouncer::service (puppet_class)">confdroid_postgresql::bouncer::service</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::firewall::iptables" class="even">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Afirewall_3A_3Aiptables.html" title="puppet_classes::confdroid_postgresql::firewall::iptables (puppet_class)">confdroid_postgresql::firewall::iptables</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::main::config" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Aconfig.html" title="puppet_classes::confdroid_postgresql::main::config (puppet_class)">confdroid_postgresql::main::config</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::main::dirs" class="even">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Adirs.html" title="puppet_classes::confdroid_postgresql::main::dirs (puppet_class)">confdroid_postgresql::main::dirs</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::main::files" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Afiles.html" title="puppet_classes::confdroid_postgresql::main::files (puppet_class)">confdroid_postgresql::main::files</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::main::install" class="even">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Amain_3A_3Ainstall.html" title="puppet_classes::confdroid_postgresql::main::install (puppet_class)">confdroid_postgresql::main::install</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::params" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::server::initdb" class="even">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aserver_3A_3Ainitdb.html" title="puppet_classes::confdroid_postgresql::server::initdb (puppet_class)">confdroid_postgresql::server::initdb</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::server::pghba::pg_hba" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aserver_3A_3Apghba_3A_3Apg_hba.html" title="puppet_classes::confdroid_postgresql::server::pghba::pg_hba (puppet_class)">confdroid_postgresql::server::pghba::pg_hba</a></span>
</div>
</li>
<li id="object_puppet_classes::confdroid_postgresql::server::service" class="even">
<div class="item">
<span class='object_link'><a href="puppet_classes/confdroid_postgresql_3A_3Aserver_3A_3Aservice.html" title="puppet_classes::confdroid_postgresql::server::service (puppet_class)">confdroid_postgresql::server::service</a></span>
</div>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>
manifests/init.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class initializes the confdroid_postgresql module.
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::init.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/init.pp', line 6</span>
class confdroid_postgresql {
include confdroid_postgresql::params
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,224 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::bouncer::bouncer
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::bouncer::bouncer";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::bouncer::bouncer</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::bouncer::bouncer</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/bouncer/bouncer.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the pgbouncer service
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::bouncer::bouncer.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com) }</p>
</div>
</div>
<div class="tags">
<div class="examples">
<p class="tag_title">Examples:</p>
<p class="example_title"><div class='inline'>
<p>confdroid_postgresql::bouncer::bouncer_rule { test connection:</p>
</div></p>
<pre class="example code"><code>pl_bouncer_db_name =&gt; &#39;test&#39;,
pl_bouncer_host =&gt; &#39;127.0.0.7&#39;,
pl_bouncer_host_port =&gt; &#39;5432&#39;,
pl_bouncer_user =&gt; &#39;test_user&#39;,
pl_bouncer_order =&gt; &#39;001&#39;,</code></pre>
</div>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/bouncer/bouncer.pp', line 13</span>
class confdroid_postgresql::bouncer::bouncer (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_pg_bouncer == true) {
# ensure directory exists
file { $pl_bouncer_dir:
ensure =&gt; directory,
owner =&gt; &#39;root&#39;,
group =&gt; &#39;root&#39;,
mode =&gt; &#39;0750&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; etc_t,
seluser =&gt; system_u,
}
# create auth user file to be populated through placeholder
file { $pl_bouncer_auth_file:
ensure =&gt; file,
owner =&gt; &#39;pgbouncer&#39;,
group =&gt; &#39;pgbouncer&#39;,
mode =&gt; &#39;0440&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; etc_t,
seluser =&gt; system_u,
content =&gt; template($pl_bouncer_auth_erb),
}
# create the pgbouncer.ini file
concat { $pl_bouncer_ini_file:
ensure =&gt; present,
owner =&gt; &#39;pgbouncer&#39;,
mode =&gt; &#39;0600&#39;,
#notify =&gt; Service[$pl_service],
}
# manage file header
concat::fragment { &#39;bouncer_header&#39;:
target =&gt; $pl_bouncer_ini_file,
content =&gt; template($pl_bouncer_ini_erb),
order =&gt; &#39;000&#39;,
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,146 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::bouncer::service
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::bouncer::service";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::bouncer::service</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::bouncer::service</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/bouncer/service.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the pgbouncer service
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::bouncer::service.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/bouncer/service.pp', line 6</span>
class confdroid_postgresql::bouncer::service (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_pg_bouncer == true) {
require confdroid_postgresql::bouncer::bouncer
service { $pl_bouncer_service:
ensure =&gt; running,
hasstatus =&gt; true,
hasrestart =&gt; true,
enable =&gt; true,
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::exporter::dirs
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::exporter::dirs";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::exporter::dirs</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::exporter::dirs</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/exporter/dirs.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the postgresql exporter dirs
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::exporter::dirs.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/exporter/dirs.pp', line 6</span>
class confdroid_postgresql::exporter::dirs (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
file { $pl_install_dir:
ensure =&gt; directory,
owner =&gt; &#39;postgres&#39;,
group =&gt; &#39;postgres&#39;,
mode =&gt; &#39;0755&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; usr_t,
seluser =&gt; system_u,
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::exporter::files
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::exporter::files";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::exporter::files</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::exporter::files</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/exporter/files.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the postgresql exporter files
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::exporter::files.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/exporter/files.pp', line 6</span>
class confdroid_postgresql::exporter::files (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
require confdroid_postgresql::exporter::dirs
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::exporter::service
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::exporter::service";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::exporter::service</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::exporter::service</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/exporter/service.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the postgresql exporter service
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::exporter::service.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/exporter/service.pp', line 6</span>
class confdroid_postgresql::exporter::service (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
require confdroid_postgresql::exporter::files
# service { $pl_exporter_service:
# ensure =&gt; running,
# hasstatus =&gt; true,
# hasrestart =&gt; true,
# enable =&gt; true,
# }
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,160 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::firewall::iptables
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::firewall::iptables";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::firewall::iptables</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::firewall::iptables</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/firewall/iptables.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the alloy iptables
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::firewall::iptables.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/firewall/iptables.pp', line 6</span>
class confdroid_postgresql::firewall::iptables (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_enable_fw == true) {
firewall { &quot;${pl_fw_rule_order}${pl_fw_port} tcp port ${pl_fw_port}&quot;:
source =&gt; $pl_source_range,
proto =&gt; &#39;tcp&#39;,
dport =&gt; $pl_fw_port,
jump =&gt; &#39;accept&#39;,
}
if $pl_use_pg_bouncer == true {
firewall { &quot;${pl_fw_rule_order}${pl_bouncer_port} tcp port ${pl_bouncer_port}&quot;:
source =&gt; $pl_source_range,
proto =&gt; &#39;tcp&#39;,
dport =&gt; $pl_bouncer_port,
jump =&gt; &#39;accept&#39;,
}
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::main::config
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::main::config";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::main::config</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::main::config</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/main/config.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages logic for the confdroid_postgresql module.
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::main::config.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/main/config.pp', line 6</span>
class confdroid_postgresql::main::config (
) inherits confdroid_postgresql::params {
require confdroid_postgresql::main::install
if $fqdn == $pl_server_fqdn {
include confdroid_postgresql::server::service
if $pl_use_pg_bouncer == true {
include confdroid_postgresql::bouncer::service
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,130 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::main::dirs
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::main::dirs";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::main::dirs</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::main::dirs</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/main/dirs.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages logic for the confdroid_postgresql module.
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::main::dirs.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/main/dirs.pp', line 6</span>
class confdroid_postgresql::main::dirs (
) inherits confdroid_postgresql::params {
require confdroid_postgresql::main::install
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,246 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::main::files
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::main::files";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::main::files</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::main::files</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/main/files.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages logic for the confdroid_postgresql module.
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::main::files.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/main/files.pp', line 6</span>
class confdroid_postgresql::main::files (
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
require confdroid_postgresql::server::initdb
require confdroid_postgresql::main::dirs
file { &#39;/var/lib/pgsql/data/postgresql.conf&#39;:
ensure =&gt; file,
owner =&gt; &#39;postgres&#39;,
group =&gt; &#39;postgres&#39;,
mode =&gt; &#39;0600&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; postgresql_db_t,
seluser =&gt; unconfined_u,
content =&gt; template(&#39;confdroid_postgresql/postgresql.conf.erb&#39;),
notify =&gt; Service[$pl_service],
}
if $pl_ssl_enabled == true {
# manage tls certs
## ca.crt
file { $pl_ca_crt_file:
ensure =&gt; file,
owner =&gt; &#39;postgres&#39;,
group =&gt; &#39;postgres&#39;,
mode =&gt; &#39;0400&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; postgresql_db_t,
seluser =&gt; unconfined_u,
content =&gt; template($pl_ca_crt_erb),
notify =&gt; Service[$pl_service],
}
## server.crt
file { $pl_server_crt_file:
ensure =&gt; file,
owner =&gt; &#39;postgres&#39;,
group =&gt; &#39;postgres&#39;,
mode =&gt; &#39;0400&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; postgresql_db_t,
seluser =&gt; unconfined_u,
content =&gt; template($pl_server_crt_erb),
notify =&gt; Service[$pl_service],
}
## server.key
file { $pl_server_key_file:
ensure =&gt; file,
owner =&gt; &#39;postgres&#39;,
group =&gt; &#39;postgres&#39;,
mode =&gt; &#39;0400&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; postgresql_db_t,
seluser =&gt; unconfined_u,
content =&gt; template($pl_server_key_erb),
notify =&gt; Service[$pl_service],
}
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,176 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::main::install
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::main::install";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::main::install</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::main::install</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/main/install.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages logic for the confdroid_postgresql module.
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::main::install.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/main/install.pp', line 6</span>
class confdroid_postgresql::main::install (
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
package { $reqpackages_server:
ensure =&gt; $pkg_ensure,
}
package { $reqpackages_client:
ensure =&gt; $pkg_ensure,
}
if $pl_manage_extensions == true {
package { $reqpackages_extensions:
ensure =&gt; $pkg_ensure,
}
}
if $pl_use_pg_bouncer == true {
package { $reqpackages_bouncer:
ensure =&gt; $pkg_ensure,
}
}
}
if $fqdn != $pl_server_fqdn {
package { $reqpackages_client:
ensure =&gt; $pkg_ensure,
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,796 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::params
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::params";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::params</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::params</h1>
<div class="box_info">
<dl>
<dt>Inherited by:</dt>
<dd>
<span class='object_link'><a href="confdroid_postgresql_3A_3Amain_3A_3Adirs.html" title="puppet_classes::confdroid_postgresql::main::dirs (puppet_class)">confdroid_postgresql::main::dirs</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Amain_3A_3Afiles.html" title="puppet_classes::confdroid_postgresql::main::files (puppet_class)">confdroid_postgresql::main::files</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Amain_3A_3Aconfig.html" title="puppet_classes::confdroid_postgresql::main::config (puppet_class)">confdroid_postgresql::main::config</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Amain_3A_3Ainstall.html" title="puppet_classes::confdroid_postgresql::main::install (puppet_class)">confdroid_postgresql::main::install</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Aserver_3A_3Ainitdb.html" title="puppet_classes::confdroid_postgresql::server::initdb (puppet_class)">confdroid_postgresql::server::initdb</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Aserver_3A_3Aservice.html" title="puppet_classes::confdroid_postgresql::server::service (puppet_class)">confdroid_postgresql::server::service</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Abouncer_3A_3Abouncer.html" title="puppet_classes::confdroid_postgresql::bouncer::bouncer (puppet_class)">confdroid_postgresql::bouncer::bouncer</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Abouncer_3A_3Aservice.html" title="puppet_classes::confdroid_postgresql::bouncer::service (puppet_class)">confdroid_postgresql::bouncer::service</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Afirewall_3A_3Aiptables.html" title="puppet_classes::confdroid_postgresql::firewall::iptables (puppet_class)">confdroid_postgresql::firewall::iptables</a></span><br/>
<span class='object_link'><a href="confdroid_postgresql_3A_3Aserver_3A_3Apghba_3A_3Apg_hba.html" title="puppet_classes::confdroid_postgresql::server::pghba::pg_hba (puppet_class)">confdroid_postgresql::server::pghba::pg_hba</a></span><br/>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/params.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class contains all parameters for the confdroid_postgresql module.
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::params.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>pl_server_fqdn</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>the fqdn of the postgresql server. Any other system will be configured as client</p>
</div>
</li>
<li>
<span class='name'>reqpackages_server</span>
<span class='type'>(<tt>Array</tt>)</span>
<em class="default">(defaults to: <tt>[&#39;postgresql-server&#39;,&#39;postgresql-contrib&#39;]</tt>)</em>
&mdash;
<div class='inline'>
<p>the packages for the server</p>
</div>
</li>
<li>
<span class='name'>reqpackages_extensions</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;timescaledb&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the packages for extensions</p>
</div>
</li>
<li>
<span class='name'>reqpackages_client</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;postgresql&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the packages for the client</p>
</div>
</li>
<li>
<span class='name'>reqpackages_bouncer</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;pgbouncer&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the packages for the bouncer</p>
</div>
</li>
<li>
<span class='name'>pkg_ensure</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;latest&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>which version of the packages to install, i.e. latest, present 13.20,</p>
</div>
</li>
<li>
<span class='name'>pl_fw_rule_order</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;50&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the prefix for the firewall rule</p>
</div>
</li>
<li>
<span class='name'>pl_fw_port</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;5432&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the port to use for service and firewall</p>
</div>
</li>
<li>
<span class='name'>pl_source_range</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;0.0.0.0/0&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the source range for allowed clients</p>
</div>
</li>
<li>
<span class='name'>pl_enable_fw</span>
<span class='type'>(<tt>Boolean</tt>)</span>
<em class="default">(defaults to: <tt>true</tt>)</em>
&mdash;
<div class='inline'>
<p>whether to enable the firewall</p>
</div>
</li>
<li>
<span class='name'>pl_listen_address</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;*&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>which address should the service listen on</p>
</div>
</li>
<li>
<span class='name'>pl_listen_port</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;5432&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>which port should the service listen on</p>
</div>
</li>
<li>
<span class='name'>pl_max_conn</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;100&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>maximum connections the service will accept</p>
</div>
</li>
<li>
<span class='name'>pl_ssl_enabled</span>
<span class='type'>(<tt>Boolean</tt>)</span>
<em class="default">(defaults to: <tt>false</tt>)</em>
&mdash;
<div class='inline'>
<p>whether SSL is enabled (true) or disabled (false)</p>
</div>
</li>
<li>
<span class='name'>pl_server_crt</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;server.crt&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the name of the server cert</p>
</div>
</li>
<li>
<span class='name'>pl_server_key</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;server.key&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the name of the server key</p>
</div>
</li>
<li>
<span class='name'>pl_ca_crt</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;root.crt&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>the name of the CA crt</p>
</div>
</li>
<li>
<span class='name'>pl_manage_content</span>
<span class='type'>(<tt>Boolean</tt>)</span>
<em class="default">(defaults to: <tt>true</tt>)</em>
&mdash;
<div class='inline'>
<p>whether to manage roles and databases</p>
</div>
</li>
<li>
<span class='name'>pl_manage_extensions</span>
<span class='type'>(<tt>Boolean</tt>)</span>
<em class="default">(defaults to: <tt>false</tt>)</em>
&mdash;
<div class='inline'>
<p>whether to manage extensions</p>
</div>
</li>
<li>
<span class='name'>pl_idle_timeout</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;60000&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>idle_in_transaction_session_timeout</p>
</div>
</li>
<li>
<span class='name'>pl_use_pg_bouncer</span>
<span class='type'>(<tt>Boolean</tt>)</span>
<em class="default">(defaults to: <tt>false</tt>)</em>
&mdash;
<div class='inline'>
<p>whether to use the pc_bouncer</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_listen_addr</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;0.0.0.0&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>bouncer listen address</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_port</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;6432&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>bouncer listen port</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_auth_mode</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;md5&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>bouncer auth mode</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_auth_users</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;&quot;pgbouncer&quot; &quot;fake&quot;&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>placeholder for users</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_pool_mode</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;transaction&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>bouncer pool mode</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_mx_cl_conn</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;100&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>bouncer max client connections</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_pool_size</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;20&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>bouncer default pool size</p>
</div>
</li>
</ul>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/params.pp', line 36</span>
class confdroid_postgresql::params (
String $pl_server_fqdn = undef,
# installation
Array $reqpackages_server = [&#39;postgresql-server&#39;,&#39;postgresql-contrib&#39;],
String $reqpackages_extensions = &#39;timescaledb&#39;,
String $reqpackages_client = &#39;postgresql&#39;,
String $reqpackages_bouncer = &#39;pgbouncer&#39;,
String $pkg_ensure = &#39;latest&#39;,
# firewall
String $pl_fw_rule_order = &#39;50&#39;,
String $pl_fw_port = &#39;5432&#39;,
String $pl_source_range = &#39;0.0.0.0/0&#39;,
Boolean $pl_enable_fw = true,
# main config
String $pl_listen_address = &#39;*&#39;,
String $pl_listen_port = &#39;5432&#39;,
String $pl_max_conn = &#39;100&#39;,
String $pl_idle_timeout = &#39;60000&#39;,
Boolean $pl_ssl_enabled = false,
String $pl_server_crt = &#39;server.crt&#39;,
String $pl_server_key = &#39;server.key&#39;,
String $pl_ca_crt = &#39;root.crt&#39;,
Boolean $pl_manage_content = true,
Boolean $pl_manage_extensions = false,
# pg bouncer
Boolean $pl_use_pg_bouncer = false,
String $pl_bouncer_listen_addr = &#39;0.0.0.0&#39;,
String $pl_bouncer_port = &#39;6432&#39;,
String $pl_bouncer_auth_mode = &#39;md5&#39;,
String $pl_bouncer_auth_users = &#39;&quot;pgbouncer&quot; &quot;fake&quot;&#39;,
String $pl_bouncer_pool_mode = &#39;transaction&#39;,
String $pl_bouncer_mx_cl_conn = &#39;100&#39;,
String $pl_bouncer_pool_size = &#39;20&#39;,
) {
$fqdn = $facts[&#39;networking&#39;][&#39;fqdn&#39;]
$domain = $facts[&#39;networking&#39;][&#39;domain&#39;]
$os_name = $facts[&#39;os&#39;][&#39;name&#39;]
$os_release = $facts[&#39;os&#39;][&#39;release&#39;][&#39;major&#39;]
# Directories
$pl_data_dir = &#39;/var/lib/pgsql/data/&#39;
$pl_bouncer_dir = &#39;/etc/pgbouncer&#39;
# files
$pl_pg_hba_conf = &quot;${pl_data_dir}/pg_hba.conf&quot;
$pl_pg_hba_rule_conf = &#39;confdroid_postgresql/server/pghba/pg_hba_rule.conf.erb&#39;
$pl_pg_hba_conf_erb = &#39;confdroid_postgresql/server/pghba/pg_hba.conf.erb&#39;
$pl_bouncer_ini_file = &quot;${pl_bouncer_dir}/pgbouncer.ini&quot;
$pl_bouncer_ini_erb = &#39;confdroid_postgresql/server/bouncer/pgbouncer.ini.erb&#39;
$pl_bouncer_auth_file = &quot;${pl_bouncer_dir}/userlist.txt&quot;
$pl_bouncer_auth_erb = &#39;confdroid_postgresql/server/bouncer/bouncer_users.erb&#39;
$pl_bouncer_rule_erb = &#39;confdroid_postgresql/server/bouncer/bouncer_rule.erb&#39;
$pl_ca_crt_file = &quot;${pl_data_dir}/ca.crt&quot;
$pl_ca_crt_erb = &#39;confdroid_postgresql/server/ca.crt.erb&#39;
$pl_server_crt_file = &quot;${pl_data_dir}/server.crt&quot;
$pl_server_crt_erb = &#39;confdroid_postgresql/server/server.crt.erb&#39;
$pl_server_key_file = &quot;${pl_data_dir}/server.key&quot;
$pl_server_key_erb = &#39;confdroid_postgresql/server/server.key.erb&#39;
# Service
$pl_service = &#39;postgresql&#39;
$pl_exporter_service = &#39;postgres_exporter&#39;
$pl_bouncer_service = &#39;pgbouncer&#39;
# includes must be last
include confdroid_postgresql::main::config
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,150 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::server::initdb
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::server::initdb";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::server::initdb</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::server::initdb</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/server/initdb.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class initiates the database
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::server::initdb.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/server/initdb.pp', line 6</span>
class confdroid_postgresql::server::initdb (
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
require confdroid_postgresql::main::install
exec { &#39;init_pgsql_db&#39;:
command =&gt; &#39;postgresql-setup --initdb&#39;,
creates =&gt; &quot;${pl_data_dir}/PG_VERSION&quot;,
path =&gt; [&#39;/sbin&#39;,&#39;/usr/bin&#39;],
}
}
include confdroid_postgresql::main::files
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,220 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::server::pghba::pg_hba
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::server::pghba::pg_hba";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::server::pghba::pg_hba</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::server::pghba::pg_hba</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/server/pghba/pg_hba.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages pg_hba.conf file and line entries through define
pg_hba_rule.pp
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::server::pg_hba.pp Module name: confdroid_postgresql Author: 12ww1160 (arne_teuke@puppetsoft.com) }</p>
</div>
</div>
<div class="tags">
<div class="examples">
<p class="tag_title">Examples:</p>
<p class="example_title"><div class='inline'>
<p>confdroid_postgresql::server::pghba::pg_hba_rule { local access for role postgres:</p>
</div></p>
<pre class="example code"><code>pl_auth_type =&gt; &#39;local&#39;,
pl_auth_database =&gt; &#39;all&#39;,
pl_auth_user =&gt; &#39;postgres&#39;,
pl_auth_method =&gt; &#39;trust&#39;,
pl_auth_order =&gt; &#39;001&#39;,
pl_auth_option =&gt; &#39;&#39;,</code></pre>
</div>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/server/pghba/pg_hba.pp', line 15</span>
class confdroid_postgresql::server::pghba::pg_hba (
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
# create the pg_hba.conf file
concat { $pl_pg_hba_conf:
ensure =&gt; present,
owner =&gt; &#39;postgres&#39;,
mode =&gt; &#39;0600&#39;,
notify =&gt; Service[$pl_service],
}
# manage file header
concat::fragment { &#39;pghba_header&#39;:
target =&gt; $pl_pg_hba_conf,
content =&gt; template($pl_pg_hba_conf_erb),
order =&gt; &#39;000&#39;,
}
# manage default rules =&gt; should go into external config set
# confdroid_postgresql::server::pghba::pg_hba_rule { &#39;local access for role postgres&#39;:
# pl_auth_type =&gt; &#39;local&#39;,
# pl_auth_database =&gt; &#39;all&#39;,
# pl_auth_user =&gt; $ql_user_name,
# pl_auth_method =&gt; &#39;trust&#39;,
# pl_auth_order =&gt; &#39;001&#39;,
# pl_auth_option =&gt; $ql_auth_option,
# }
# confdroid_postgresql::server::pghba::pg_hba_rule { &#39;local access for all roles&#39;:
# pl_auth_type =&gt; &#39;local&#39;,
# pl_auth_database =&gt; &#39;all&#39;,
# pl_auth_user =&gt; &#39;all&#39;,
# pl_auth_method =&gt; &#39;trust&#39;,
# pl_auth_order =&gt; &#39;002&#39;,
# pl_auth_option =&gt; $pl_auth_option,
# }
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Puppet Class: confdroid_postgresql::server::service
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_classes::confdroid_postgresql::server::service";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Puppet Classes</span></span>
&raquo;
<span class="title">confdroid_postgresql::server::service</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Puppet Class: confdroid_postgresql::server::service</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd><span class='object_link'><a href="confdroid_postgresql_3A_3Aparams.html" title="puppet_classes::confdroid_postgresql::params (puppet_class)">confdroid_postgresql::params</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>
manifests/server/service.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
Class manages the postgresql service
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::server::service.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/server/service.pp', line 6</span>
class confdroid_postgresql::server::service (
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
require confdroid_postgresql::firewall::iptables
require confdroid_postgresql::server::initdb
require confdroid_postgresql::server::pghba::pg_hba
service { $pl_service:
ensure =&gt; running,
hasstatus =&gt; true,
hasrestart =&gt; true,
enable =&gt; true,
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,75 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" />
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
<title>Defined Type List</title>
<base id="base_target" target="_parent" />
</head>
<body>
<div id="content">
<div class="fixed_header">
<h1 id="full_list_header">Defined Type List</h1>
<div id="full_list_nav">
<span><a target="_self" href="puppet_class_list.html">
Puppet Classes
</a></span>
<span><a target="_self" href="puppet_defined_type_list.html">
Defined Types
</a></span>
</div>
<div id="search">Search: <input type="text" /></div>
</div>
<ul id="full_list" class="puppet_defined_type">
<li id="object_puppet_defined_types::confdroid_postgresql::bouncer::bouncer_rule" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Abouncer_3A_3Abouncer_rule.html" title="puppet_defined_types::confdroid_postgresql::bouncer::bouncer_rule (puppet_defined_type)">confdroid_postgresql::bouncer::bouncer_rule</a></span>
</div>
</li>
<li id="object_puppet_defined_types::confdroid_postgresql::server::databases::db_df" class="even">
<div class="item">
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Aserver_3A_3Adatabases_3A_3Adb_df.html" title="puppet_defined_types::confdroid_postgresql::server::databases::db_df (puppet_defined_type)">confdroid_postgresql::server::databases::db_df</a></span>
</div>
</li>
<li id="object_puppet_defined_types::confdroid_postgresql::server::pghba::pg_hba_rule" class="odd">
<div class="item">
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Aserver_3A_3Apghba_3A_3Apg_hba_rule.html" title="puppet_defined_types::confdroid_postgresql::server::pghba::pg_hba_rule (puppet_defined_type)">confdroid_postgresql::server::pghba::pg_hba_rule</a></span>
</div>
</li>
<li id="object_puppet_defined_types::confdroid_postgresql::server::roles::role_df" class="even">
<div class="item">
<span class='object_link'><a href="puppet_defined_types/confdroid_postgresql_3A_3Aserver_3A_3Aroles_3A_3Arole_df.html" title="puppet_defined_types::confdroid_postgresql::server::roles::role_df (puppet_defined_type)">confdroid_postgresql::server::roles::role_df</a></span>
</div>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,252 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Defined Type: confdroid_postgresql::bouncer::bouncer_rule
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_defined_types::confdroid_postgresql::bouncer::bouncer_rule";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_defined_type_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Defined Types</span></span>
&raquo;
<span class="title">confdroid_postgresql::bouncer::bouncer_rule</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Defined Type: confdroid_postgresql::bouncer::bouncer_rule</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>
manifests/bouncer/bouncer_rule.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
define manages rule entries for bouncer rules
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::bouncer::bouncer_rule.pp Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>pl_bouncer_db_name</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>db name for the bouncer rule</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_host</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;127.0.0.1&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>IP of the db host to bounce to</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_host_port</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;5432&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>port of the db host to bounce to</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_user</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>user for the connection. Must be defined in userlist.txt</p>
</div>
</li>
<li>
<span class='name'>pl_bouncer_order</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>the order in which the rule should appear</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html" target="_parent" title="https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html">https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html</a></li>
</ul>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/bouncer/bouncer_rule.pp', line 13</span>
define confdroid_postgresql::bouncer::bouncer_rule (
String $pl_bouncer_db_name = undef,
String $pl_bouncer_host = &#39;127.0.0.1&#39;,
String $pl_bouncer_host_port = &#39;5432&#39;,
String $pl_bouncer_user = undef,
String $pl_bouncer_order = undef,
) {
$pl_bouncer_ini_file = $confdroid_postgresql::params::pl_bouncer_ini_file
$pl_bouncer_ini_erb = $confdroid_postgresql::params::pl_bouncer_ini_erb
$pl_bouncer_rule_erb = $confdroid_postgresql::params::pl_bouncer_rule_erb
concat::fragment { &quot;pl_bouncer_rule_${name}&quot;:
target =&gt; $pl_bouncer_ini_file,
content =&gt; template($pl_bouncer_rule_erb),
order =&gt; $pl_bouncer_order,
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,261 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Defined Type: confdroid_postgresql::server::databases::db_df
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_defined_types::confdroid_postgresql::server::databases::db_df";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_defined_type_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Defined Types</span></span>
&raquo;
<span class="title">confdroid_postgresql::server::databases::db_df</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Defined Type: confdroid_postgresql::server::databases::db_df</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>
manifests/server/databases/db_df.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
define manages databases
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::server::databases::db_df Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com.com)</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>pl_db_name</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>the name of the database to be created.</p>
</div>
</li>
<li>
<span class='name'>pl_owner_name</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>the name of the owner for the database (optional), if none specified, the postgresql defaults will apply.</p>
</div>
</li>
<li>
<span class='name'>pl_db_action</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>whether to create or drop the database. CREATE DATABASE creates it, DROP DATABASE drops it.</p>
</div>
</li>
<li>
<span class='name'>pl_db_extension</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;pg_trgm&#39;</tt>)</em>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://www.postgresql.org/docs/9.6/static/managing-databases.html" target="_parent" title="https://www.postgresql.org/docs/9.6/static/managing-databases.html">https://www.postgresql.org/docs/9.6/static/managing-databases.html</a></li>
</ul>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/server/databases/db_df.pp', line 13</span>
define confdroid_postgresql::server::databases::db_df (
Optional[String] $pl_db_name = undef,
Optional[String] $pl_owner_name = undef,
Optional[String] $pl_db_action = undef,
String $pl_db_extension = &#39;pg_trgm&#39;,
) {
$pl_manage_content = $confdroid_postgresql::params::pl_manage_content
if $pl_manage_content == true {
# create databases
if $pl_db_action == &#39;CREATE DATABASE&#39; {
exec { &quot;create_database_${name}&quot;:
command =&gt; template(&#39;confdroid_postgresql/server/databases/db_create_sql.erb&#39;),
user =&gt; &#39;postgres&#39;,
path =&gt; [&#39;/usr/bin&#39;,&#39;/bin&#39;],
cwd =&gt; &#39;/tmp&#39;,
unless =&gt; template(&#39;confdroid_postgresql/server/databases/unless_db_sql.erb&#39;),
}
}
# Drop databases
if $pl_db_action == &#39;DROP DATABASE&#39; {
exec { &quot;drop_database_${name}&quot;:
command =&gt; template(&#39;confdroid_postgresql/server/databases/db_drop_sql.erb&#39;),
user =&gt; &#39;postgres&#39;,
path =&gt; [&#39;/usr/bin&#39;,&#39;/bin&#39;],
cwd =&gt; &#39;/tmp&#39;,
onlyif =&gt; template(&#39;confdroid_postgresql/server/databases/unless_drop_sql.erb&#39;),
}
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,316 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Defined Type: confdroid_postgresql::server::pghba::pg_hba_rule
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_defined_types::confdroid_postgresql::server::pghba::pg_hba_rule";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_defined_type_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Defined Types</span></span>
&raquo;
<span class="title">confdroid_postgresql::server::pghba::pg_hba_rule</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Defined Type: confdroid_postgresql::server::pghba::pg_hba_rule</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>
manifests/server/pghba/pg_hba_rule.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
define manages rule entries for pg_hba configuration file
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
<p>confdroid_postgresql::server::pghba::pg_hba_rule Module name: confdroid_postgresql Author: 12ww1160 (12ww1160@confdroid.com)</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>pl_auth_type</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify the authentication type, can be local, host, hostssl or hostnossl.</p>
</div>
</li>
<li>
<span class='name'>pl_auth_database</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify the database for the connection</p>
</div>
</li>
<li>
<span class='name'>pl_auth_user</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify the user for the connection</p>
</div>
</li>
<li>
<span class='name'>pl_auth_address</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify IP address or FQDN for the connection, i.e. where to connect FROM.</p>
</div>
</li>
<li>
<span class='name'>pl_auth_method</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify the auth method, can be trust, reject, md5 , password, gss, sspi, ident, peer, ldap, radius, cert, pam,bsd</p>
</div>
</li>
<li>
<span class='name'>pl_auth_option</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>After the auth-method field, there can be field(s) of the form name=value that specify options for the authentication method.</p>
</div>
</li>
<li>
<span class='name'>pl_auth_order</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify the order in which the entry should appear on the list. Lower orders are higher on the list.</p>
</div>
</li>
<li>
<span class='name'>pl_auth_description</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>Specify a description for the entry.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html" target="_parent" title="https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html">https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html</a></li>
</ul>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/server/pghba/pg_hba_rule.pp', line 22</span>
define confdroid_postgresql::server::pghba::pg_hba_rule (
Optional[String] $pl_auth_type = undef,
Optional[String] $pl_auth_database = undef,
Optional[String] $pl_auth_user = undef,
Optional[String] $pl_auth_address = undef,
Optional[String] $pl_auth_method = undef,
Optional[String] $pl_auth_option = undef,
Optional[String] $pl_auth_order = undef,
Optional[String] $pl_auth_description = undef,
) {
$pl_pg_hba_conf = $confdroid_postgresql::params::pl_pg_hba_conf
$pl_pg_hba_rule_conf = $confdroid_postgresql::params::pl_pg_hba_rule_conf
$pl_data_dir = $confdroid_postgresql::params::pl_data_dir
# create rule fragment
concat::fragment { &quot;pl_rule_${name}&quot;:
target =&gt; $pl_pg_hba_conf,
content =&gt; template($pl_pg_hba_rule_conf),
order =&gt; $pl_auth_order,
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,238 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Defined Type: confdroid_postgresql::server::roles::role_df
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "puppet_defined_types::confdroid_postgresql::server::roles::role_df";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../puppet_defined_type_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (c)</a> &raquo;
<span class='title'><span class='object_link'>Defined Types</span></span>
&raquo;
<span class="title">confdroid_postgresql::server::roles::role_df</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="../puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Defined Type: confdroid_postgresql::server::roles::role_df</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>
manifests/server/roles/role_df.pp
</dd>
</dl>
</div>
<h2>Summary</h2>
define manages databases
<h2>Overview</h2>
<div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>pl_role_name</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>the name of the role to be created.</p>
</div>
</li>
<li>
<span class='name'>pl_role_pw</span>
<span class='type'>(<tt>Optional[String]</tt>)</span>
<em class="default">(defaults to: <tt>undef</tt>)</em>
&mdash;
<div class='inline'>
<p>the password to be created</p>
</div>
</li>
<li>
<span class='name'>pl_role_attributes</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;LOGIN&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>attributes for the role to be created</p>
</div>
</li>
<li>
<span class='name'>pl_role_status</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;CREATE ROLE&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>what to do with the role</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://www.postgresql.org/docs/9.6/static/managing-databases.html" target="_parent" title="https://www.postgresql.org/docs/9.6/static/managing-databases.html">https://www.postgresql.org/docs/9.6/static/managing-databases.html</a></li>
</ul>
</div><div class="method_details_list">
<table class="source_code">
<tr>
<td>
<pre class="lines">
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/server/roles/role_df.pp', line 12</span>
define confdroid_postgresql::server::roles::role_df (
Optional[String] $pl_role_name = undef,
Optional[String] $pl_role_pw = undef,
String $pl_role_attributes = &#39;LOGIN&#39;,
String $pl_role_status = &#39;CREATE ROLE&#39;,
) {
$pl_manage_content = $confdroid_postgresql::params::pl_manage_content
if $pl_manage_content == true {
# create the role
exec { &quot;role_${name}&quot;:
command =&gt; template(&#39;confdroid_postgresql/server/roles/role.sql.erb&#39;),
user =&gt; &#39;postgres&#39;,
path =&gt; [&#39;/usr/bin&#39;,&#39;/bin&#39;],
cwd =&gt; &#39;/tmp&#39;,
unless =&gt; template(&#39;confdroid_postgresql/server/roles/unless_sql.erb&#39;),
}
}
}</pre>
</td>
</tr>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Top Level Namespace
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "";
relpath = '';
</script>
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="_index.html">Index</a> &raquo;
<span class="title">Top Level Namespace</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Top Level Namespace
</h1>
<div class="box_info">
</div>
</div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>

BIN
files/postgres_exporter Executable file

Binary file not shown.

View File

@@ -0,0 +1,56 @@
## confdroid_postgresql::bouncer::bouncer.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages the pgbouncer service
# @example confdroid_postgresql::bouncer::bouncer_rule { 'test connection':
# pl_bouncer_db_name => 'test',
# pl_bouncer_host => '127.0.0.7',
# pl_bouncer_host_port => '5432',
# pl_bouncer_user => 'test_user',
# pl_bouncer_order => '001',
# }
###############################################################################
class confdroid_postgresql::bouncer::bouncer (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_pg_bouncer == true) {
# ensure directory exists
file { $pl_bouncer_dir:
ensure => directory,
owner => 'root',
group => 'root',
mode => '0750',
selrange => s0,
selrole => object_r,
seltype => etc_t,
seluser => system_u,
}
# create auth user file to be populated through placeholder
file { $pl_bouncer_auth_file:
ensure => file,
owner => 'pgbouncer',
group => 'pgbouncer',
mode => '0440',
selrange => s0,
selrole => object_r,
seltype => etc_t,
seluser => system_u,
content => template($pl_bouncer_auth_erb),
}
# create the pgbouncer.ini file
concat { $pl_bouncer_ini_file:
ensure => present,
owner => 'pgbouncer',
mode => '0600',
#notify => Service[$pl_service],
}
# manage file header
concat::fragment { 'bouncer_header':
target => $pl_bouncer_ini_file,
content => template($pl_bouncer_ini_erb),
order => '000',
}
}
}

View File

@@ -0,0 +1,31 @@
# confdroid_postgresql::bouncer::bouncer_rule.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary define manages rule entries for bouncer rules
# @see https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html
# @param [String] pl_bouncer_db_name db name for the bouncer rule
# @param [String] pl_bouncer_host IP of the db host to bounce to
# @param [String] pl_bouncer_host_port port of the db host to bounce to
# @param [String] pl_bouncer_user user for the connection. Must be defined in
# userlist.txt
# @param [String] pl_bouncer_order the order in which the rule should appear
##############################################################################
define confdroid_postgresql::bouncer::bouncer_rule (
String $pl_bouncer_db_name = undef,
String $pl_bouncer_host = '127.0.0.1',
String $pl_bouncer_host_port = '5432',
String $pl_bouncer_user = undef,
String $pl_bouncer_order = undef,
) {
$pl_bouncer_ini_file = $confdroid_postgresql::params::pl_bouncer_ini_file
$pl_bouncer_ini_erb = $confdroid_postgresql::params::pl_bouncer_ini_erb
$pl_bouncer_rule_erb = $confdroid_postgresql::params::pl_bouncer_rule_erb
concat::fragment { "pl_bouncer_rule_${name}":
target => $pl_bouncer_ini_file,
content => template($pl_bouncer_rule_erb),
order => $pl_bouncer_order,
}
}

View File

@@ -0,0 +1,18 @@
## confdroid_postgresql::bouncer::service.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages the pgbouncer service
###############################################################################
class confdroid_postgresql::bouncer::service (
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_use_pg_bouncer == true) {
require confdroid_postgresql::bouncer::bouncer
service { $pl_bouncer_service:
ensure => running,
hasstatus => true,
hasrestart => true,
enable => true,
}
}
}

View File

@@ -1,11 +1,11 @@
## postgresql_cd::firewall::iptables.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
## confdroid_postgresql::firewall::iptables.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages the alloy iptables
###############################################################################
class postgresql_cd::firewall::iptables (
class confdroid_postgresql::firewall::iptables (
) inherits postgresql_cd::params {
) inherits confdroid_postgresql::params {
if ($fqdn == $pl_server_fqdn) and ($pl_enable_fw == true) {
firewall { "${pl_fw_rule_order}${pl_fw_port} tcp port ${pl_fw_port}":
source => $pl_source_range,
@@ -13,5 +13,13 @@ class postgresql_cd::firewall::iptables (
dport => $pl_fw_port,
jump => 'accept',
}
if $pl_use_pg_bouncer == true {
firewall { "${pl_fw_rule_order}${pl_bouncer_port} tcp port ${pl_bouncer_port}":
source => $pl_source_range,
proto => 'tcp',
dport => $pl_bouncer_port,
jump => 'accept',
}
}
}
}

View File

@@ -1,8 +1,8 @@
## postgresql_cd::init.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class initializes the postgresql_cd module.
## confdroid_postgresql::init.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class initializes the confdroid_postgresql module.
##############################################################################
class postgresql_cd {
include postgresql_cd::params
class confdroid_postgresql {
include confdroid_postgresql::params
}

View File

@@ -1,10 +1,17 @@
## postgresql_cd::main::config.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages logic for the postgresql_cd module.
## confdroid_postgresql::main::config.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages logic for the confdroid_postgresql module.
##############################################################################
class postgresql_cd::main::config (
class confdroid_postgresql::main::config (
) inherits postgresql_cd::params {
include postgresql_cd::server::service
) inherits confdroid_postgresql::params {
require confdroid_postgresql::main::install
if $fqdn == $pl_server_fqdn {
include confdroid_postgresql::server::service
if $pl_use_pg_bouncer == true {
include confdroid_postgresql::bouncer::service
}
}
}

View File

@@ -1,10 +1,10 @@
## postgresql_cd::main::dirs.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages logic for the postgresql_cd module.
## confdroid_postgresql::main::dirs.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages logic for the confdroid_postgresql module.
##############################################################################
class postgresql_cd::main::dirs (
class confdroid_postgresql::main::dirs (
) inherits postgresql_cd::params {
require postgresql_cd::main::install
) inherits confdroid_postgresql::params {
require confdroid_postgresql::main::install
}

View File

@@ -1,27 +1,14 @@
## postgresql_cd::main::files.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages logic for the postgresql_cd module.
## confdroid_postgresql::main::files.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages logic for the confdroid_postgresql module.
##############################################################################
class postgresql_cd::main::files (
class confdroid_postgresql::main::files (
) inherits postgresql_cd::params {
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
require postgresql_cd::server::initdb
require postgresql_cd::main::dirs
file { '/var/lib/pgsql/data/pg_hba.conf':
ensure => file,
owner => 'postgres',
group => 'postgres',
mode => '0600',
selrange => s0,
selrole => object_r,
seltype => postgresql_db_t,
seluser => unconfined_u,
content => template('postgresql_cd/pg_hba.conf.erb'),
notify => Service[$pl_service],
}
require confdroid_postgresql::server::initdb
require confdroid_postgresql::main::dirs
file { '/var/lib/pgsql/data/postgresql.conf':
ensure => file,
@@ -32,8 +19,50 @@ class postgresql_cd::main::files (
selrole => object_r,
seltype => postgresql_db_t,
seluser => unconfined_u,
content => template('postgresql_cd/postgresql.conf.erb'),
content => template('confdroid_postgresql/postgresql.conf.erb'),
notify => Service[$pl_service],
}
if $pl_ssl_enabled == true {
# manage tls certs
## ca.crt
file { $pl_ca_crt_file:
ensure => file,
owner => 'postgres',
group => 'postgres',
mode => '0400',
selrange => s0,
selrole => object_r,
seltype => postgresql_db_t,
seluser => unconfined_u,
content => template($pl_ca_crt_erb),
notify => Service[$pl_service],
}
## server.crt
file { $pl_server_crt_file:
ensure => file,
owner => 'postgres',
group => 'postgres',
mode => '0400',
selrange => s0,
selrole => object_r,
seltype => postgresql_db_t,
seluser => unconfined_u,
content => template($pl_server_crt_erb),
notify => Service[$pl_service],
}
## server.key
file { $pl_server_key_file:
ensure => file,
owner => 'postgres',
group => 'postgres',
mode => '0400',
selrange => s0,
selrole => object_r,
seltype => postgresql_db_t,
seluser => unconfined_u,
content => template($pl_server_key_erb),
notify => Service[$pl_service],
}
}
}
}

View File

@@ -1,11 +1,11 @@
## postgresql_cd::main::install.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages logic for the postgresql_cd module.
## confdroid_postgresql::main::install.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages logic for the confdroid_postgresql module.
##############################################################################
class postgresql_cd::main::install (
class confdroid_postgresql::main::install (
) inherits postgresql_cd::params {
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
package { $reqpackages_server:
ensure => $pkg_ensure,
@@ -13,6 +13,16 @@ class postgresql_cd::main::install (
package { $reqpackages_client:
ensure => $pkg_ensure,
}
if $pl_manage_extensions == true {
package { $reqpackages_extensions:
ensure => $pkg_ensure,
}
}
if $pl_use_pg_bouncer == true {
package { $reqpackages_bouncer:
ensure => $pkg_ensure,
}
}
}
if $fqdn != $pl_server_fqdn {

View File

@@ -1,10 +1,13 @@
## postgresql_cd::params.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
## confdroid_postgresql::params.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class contains all parameters for the confdroid_postgresql module.
# @param [String] pl_server_fqdn the fqdn of the postgresql server. Any other
# system will be configured as client
# @param [String] reqpackages_server the packages for the server
# @param [Array] reqpackages_server the packages for the server
# @param [String] reqpackages_extensions the packages for extensions
# @param [String] reqpackages_client the packages for the client
# @param [String] reqpackages_bouncer the packages for the bouncer
# @param [String] pkg_ensure which version of the packages to install, i.e.
# 'latest', 'present' '13.20',
# @param [String] pl_fw_rule_order the prefix for the firewall rule
@@ -14,15 +17,31 @@
# @param [String] pl_listen_address which address should the service listen on
# @param [String] pl_listen_port which port should the service listen on
# @param [String] pl_max_conn maximum connections the service will accept
# @summary Class contains all parameters for the postgresql_cd module.
# @param [Boolean] pl_ssl_enabled whether SSL is enabled (true) or disabled (false)
# @param [String] pl_server_crt the name of the server cert
# @param [String] pl_server_key the name of the server key
# @param [String] pl_ca_crt the name of the CA crt
# @param [Boolean] pl_manage_content whether to manage roles and databases
# @param [Boolean] pl_manage_extensions whether to manage extensions
# @param [String] pl_idle_timeout idle_in_transaction_session_timeout
# @param [Boolean] pl_use_pg_bouncer whether to use the pc_bouncer
# @param [String] pl_bouncer_listen_addr bouncer listen address
# @param [String] pl_bouncer_port bouncer listen port
# @param [String] pl_bouncer_auth_mode bouncer auth mode
# @param [String] pl_bouncer_auth_users placeholder for users
# @param [String] pl_bouncer_pool_mode bouncer pool mode
# @param [String] pl_bouncer_mx_cl_conn bouncer max client connections
# @param [String] pl_bouncer_pool_size bouncer default pool size
##############################################################################
class postgresql_cd::params (
class confdroid_postgresql::params (
String $pl_server_fqdn = undef,
# installation
String $reqpackages_server = 'postgresql-server',
Array $reqpackages_server = ['postgresql-server','postgresql-contrib'],
String $reqpackages_extensions = 'timescaledb',
String $reqpackages_client = 'postgresql',
String $reqpackages_bouncer = 'pgbouncer',
String $pkg_ensure = 'latest',
# firewall
@@ -35,6 +54,23 @@ class postgresql_cd::params (
String $pl_listen_address = '*',
String $pl_listen_port = '5432',
String $pl_max_conn = '100',
String $pl_idle_timeout = '60000',
Boolean $pl_ssl_enabled = false,
String $pl_server_crt = 'server.crt',
String $pl_server_key = 'server.key',
String $pl_ca_crt = 'root.crt',
Boolean $pl_manage_content = true,
Boolean $pl_manage_extensions = false,
# pg bouncer
Boolean $pl_use_pg_bouncer = false,
String $pl_bouncer_listen_addr = '0.0.0.0',
String $pl_bouncer_port = '6432',
String $pl_bouncer_auth_mode = 'md5',
String $pl_bouncer_auth_users = '"pgbouncer" "fake"',
String $pl_bouncer_pool_mode = 'transaction',
String $pl_bouncer_mx_cl_conn = '100',
String $pl_bouncer_pool_size = '20',
) {
$fqdn = $facts['networking']['fqdn']
@@ -42,12 +78,31 @@ class postgresql_cd::params (
$os_name = $facts['os']['name']
$os_release = $facts['os']['release']['major']
# Service
$pl_service = 'postgresql'
# Directories
$pl_data_dir = '/var/lib/pgsql/data/'
$pl_bouncer_dir = '/etc/pgbouncer'
# files
$pl_pg_hba_conf = "${pl_data_dir}/pg_hba.conf"
$pl_pg_hba_rule_conf = 'confdroid_postgresql/server/pghba/pg_hba_rule.conf.erb'
$pl_pg_hba_conf_erb = 'confdroid_postgresql/server/pghba/pg_hba.conf.erb'
$pl_bouncer_ini_file = "${pl_bouncer_dir}/pgbouncer.ini"
$pl_bouncer_ini_erb = 'confdroid_postgresql/server/bouncer/pgbouncer.ini.erb'
$pl_bouncer_auth_file = "${pl_bouncer_dir}/userlist.txt"
$pl_bouncer_auth_erb = 'confdroid_postgresql/server/bouncer/bouncer_users.erb'
$pl_bouncer_rule_erb = 'confdroid_postgresql/server/bouncer/bouncer_rule.erb'
$pl_ca_crt_file = "${pl_data_dir}/ca.crt"
$pl_ca_crt_erb = 'confdroid_postgresql/server/ca.crt.erb'
$pl_server_crt_file = "${pl_data_dir}/server.crt"
$pl_server_crt_erb = 'confdroid_postgresql/server/server.crt.erb'
$pl_server_key_file = "${pl_data_dir}/server.key"
$pl_server_key_erb = 'confdroid_postgresql/server/server.key.erb'
# Service
$pl_service = 'postgresql'
$pl_exporter_service = 'postgres_exporter'
$pl_bouncer_service = 'pgbouncer'
# includes must be last
include postgresql_cd::main::config
include confdroid_postgresql::main::config
}

View File

@@ -0,0 +1,47 @@
## confdroid_postgresql::server::databases::db_df
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com.com)
# @summary define manages databases
# @see https://www.postgresql.org/docs/9.6/static/managing-databases.html
# @param [String] pl_db_name the name of the database to be created.
# @param [String] pl_owner_name the name of the owner for the database
# (optional), if none specified, the postgresql defaults will apply.
# @param [String] pl_db_action whether to create or drop the database.
# 'CREATE DATABASE' creates it, 'DROP DATABASE' drops it.
# @param [String] pl_db_extension
##############################################################################
define confdroid_postgresql::server::databases::db_df (
Optional[String] $pl_db_name = undef,
Optional[String] $pl_owner_name = undef,
Optional[String] $pl_db_action = undef,
String $pl_db_extension = 'pg_trgm',
) {
$pl_manage_content = $confdroid_postgresql::params::pl_manage_content
if $pl_manage_content == true {
# create databases
if $pl_db_action == 'CREATE DATABASE' {
exec { "create_database_${name}":
command => template('confdroid_postgresql/server/databases/db_create_sql.erb'),
user => 'postgres',
path => ['/usr/bin','/bin'],
cwd => '/tmp',
unless => template('confdroid_postgresql/server/databases/unless_db_sql.erb'),
}
}
# Drop databases
if $pl_db_action == 'DROP DATABASE' {
exec { "drop_database_${name}":
command => template('confdroid_postgresql/server/databases/db_drop_sql.erb'),
user => 'postgres',
path => ['/usr/bin','/bin'],
cwd => '/tmp',
onlyif => template('confdroid_postgresql/server/databases/unless_drop_sql.erb'),
}
}
}
}

View File

@@ -1,12 +1,14 @@
## postgresql_cd::server::initdb.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
## confdroid_postgresql::server::initdb.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class initiates the database
###############################################################################
class postgresql_cd::server::initdb (
class confdroid_postgresql::server::initdb (
) inherits postgresql_cd::params {
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
require confdroid_postgresql::main::install
exec { 'init_pgsql_db':
command => 'postgresql-setup --initdb',
creates => "${pl_data_dir}/PG_VERSION",
@@ -14,5 +16,5 @@ class postgresql_cd::server::initdb (
}
}
include postgresql_cd::main::files
include confdroid_postgresql::main::files
}

View File

@@ -0,0 +1,55 @@
## confdroid_postgresql::server::pg_hba.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (arne_teuke@puppetsoft.com)
# @summary Class manages pg_hba.conf file and line entries through define
# pg_hba_rule.pp
# @example confdroid_postgresql::server::pghba::pg_hba_rule { 'local access for role postgres':
# pl_auth_type => 'local',
# pl_auth_database => 'all',
# pl_auth_user => 'postgres',
# pl_auth_method => 'trust',
# pl_auth_order => '001',
# pl_auth_option => '',
# }
##############################################################################
class confdroid_postgresql::server::pghba::pg_hba (
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
# create the pg_hba.conf file
concat { $pl_pg_hba_conf:
ensure => present,
owner => 'postgres',
mode => '0600',
notify => Service[$pl_service],
}
# manage file header
concat::fragment { 'pghba_header':
target => $pl_pg_hba_conf,
content => template($pl_pg_hba_conf_erb),
order => '000',
}
# manage default rules => should go into external config set
# confdroid_postgresql::server::pghba::pg_hba_rule { 'local access for role postgres':
# pl_auth_type => 'local',
# pl_auth_database => 'all',
# pl_auth_user => $ql_user_name,
# pl_auth_method => 'trust',
# pl_auth_order => '001',
# pl_auth_option => $ql_auth_option,
# }
# confdroid_postgresql::server::pghba::pg_hba_rule { 'local access for all roles':
# pl_auth_type => 'local',
# pl_auth_database => 'all',
# pl_auth_user => 'all',
# pl_auth_method => 'trust',
# pl_auth_order => '002',
# pl_auth_option => $pl_auth_option,
# }
}
}

View File

@@ -0,0 +1,45 @@
## confdroid_postgresql::server::pghba::pg_hba_rule
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary define manages rule entries for pg_hba configuration file
# @see https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html
# @param [string] pl_auth_type Specify the authentication type, can be
# 'local', 'host', 'hostssl' or 'hostnossl'.
# @param [string] pl_auth_database Specify the database for the connection
# @param [string] pl_auth_user Specify the user for the connection
# @param [string] pl_auth_address Specify IP address or FQDN for the
# connection, i.e. where to connect FROM.
# @param [string] pl_auth_method Specify the auth method, can be 'trust',
# 'reject', 'md5' , 'password', 'gss', 'sspi', 'ident', 'peer', 'ldap',
# 'radius', 'cert', 'pam','bsd'
# @param [string] pl_auth_option After the auth-method field, there can be
# field(s) of the form name=value that specify options for the authentication
# method.
# @param [string] pl_auth_order Specify the order in which the entry should
# appear on the list. Lower orders are higher on the list.
# @param [string] pl_auth_description Specify a description for the entry.
##############################################################################
define confdroid_postgresql::server::pghba::pg_hba_rule (
Optional[String] $pl_auth_type = undef,
Optional[String] $pl_auth_database = undef,
Optional[String] $pl_auth_user = undef,
Optional[String] $pl_auth_address = undef,
Optional[String] $pl_auth_method = undef,
Optional[String] $pl_auth_option = undef,
Optional[String] $pl_auth_order = undef,
Optional[String] $pl_auth_description = undef,
) {
$pl_pg_hba_conf = $confdroid_postgresql::params::pl_pg_hba_conf
$pl_pg_hba_rule_conf = $confdroid_postgresql::params::pl_pg_hba_rule_conf
$pl_data_dir = $confdroid_postgresql::params::pl_data_dir
# create rule fragment
concat::fragment { "pl_rule_${name}":
target => $pl_pg_hba_conf,
content => template($pl_pg_hba_rule_conf),
order => $pl_auth_order,
}
}

View File

@@ -0,0 +1,33 @@
## confdroid_postgresql::server::roles::role_df
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary define manages databases
# @see https://www.postgresql.org/docs/9.6/static/managing-databases.html
# @param [string] pl_role_name the name of the role to be created.
# @param [string] pl_role_pw the password to be created
# @param [string] pl_role_attributes attributes for the role to be created
# @param [string] pl_role_status what to do with the role
##############################################################################
define confdroid_postgresql::server::roles::role_df (
Optional[String] $pl_role_name = undef,
Optional[String] $pl_role_pw = undef,
String $pl_role_attributes = 'LOGIN',
String $pl_role_status = 'CREATE ROLE',
) {
$pl_manage_content = $confdroid_postgresql::params::pl_manage_content
if $pl_manage_content == true {
# create the role
exec { "role_${name}":
command => template('confdroid_postgresql/server/roles/role.sql.erb'),
user => 'postgres',
path => ['/usr/bin','/bin'],
cwd => '/tmp',
unless => template('confdroid_postgresql/server/roles/unless_sql.erb'),
}
}
}

View File

@@ -1,14 +1,15 @@
## postgresql_cd::server::service.pp
# Module name: postgresql_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
## confdroid_postgresql::server::service.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages the postgresql service
###############################################################################
class postgresql_cd::server::service (
class confdroid_postgresql::server::service (
) inherits postgresql_cd::params {
) inherits confdroid_postgresql::params {
if $fqdn == $pl_server_fqdn {
require postgresql_cd::firewall::iptables
require postgresql_cd::server::initdb
require confdroid_postgresql::firewall::iptables
require confdroid_postgresql::server::initdb
require confdroid_postgresql::server::pghba::pg_hba
service { $pl_service:
ensure => running,

View File

@@ -1,3 +0,0 @@
# description: <%=@name%>
# order number: <%=@psql_auth_order%>
<%= @pl_auth_type %> <%= @pl_auth_database %> <%= @pl_auth_user %> <%= @pl_auth_address %> <%=@pl_auth_method %> <%=@psql_auth_option%>

View File

@@ -93,13 +93,32 @@ max_connections = <%= @pl_max_conn %>
#krb_server_keyfile = 'FILE:${sysconfdir}/krb5.keytab'
#krb_caseins_users = off
# - Shared Library Preloading -
<% if @pl_manage_extensions == true -%>
shared_preload_libraries = '<%= @reqpackages_extensions %>'
<% else -%>
# shared_preload_libraries = ''
<% end -%>
#local_preload_libraries = ''
#session_preload_libraries = ''
#jit_provider = 'llvmjit' # JIT library to use
# - SSL -
#ssl = off
#ssl_ca_file = ''
#ssl_cert_file = 'server.crt'
<% if @pl_ssl_enabled == true -%>
ssl = on
ssl_ca_file = '<%= @pl_data_dir %>ca.crt'
ssl_cert_file = '<%= @pl_data_dir %>server.crt'
ssl_key_file = '<%= @pl_data_dir %>server.key'
<% end -%>
<% if @pl_ssl_enabled != true -%>
ssl = off
<% end -%>
idle_in_transaction_session_timeout = <%= @pl_idle_timeout %>
#ssl_crl_file = ''
#ssl_key_file = 'server.key'
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
#ssl_ecdh_curve = 'prime256v1'
@@ -657,7 +676,6 @@ log_timezone = 'Etc/UTC'
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
@@ -698,13 +716,6 @@ lc_time = 'en_US.UTF-8' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Shared Library Preloading -
#shared_preload_libraries = '' # (change requires restart)
#local_preload_libraries = ''
#session_preload_libraries = ''
#jit_provider = 'llvmjit' # JIT library to use
# - Other Defaults -
#dynamic_library_path = '$libdir'

View File

@@ -0,0 +1 @@
<%= @pl_bouncer_db_name %> = host=<%= @pl_bouncer_host %> port=<%= @pl_bouncer_host_port %> auth_user=<%= @pl_bouncer_user %> dbname=<%= @pl_bouncer_db_name %>

View File

@@ -0,0 +1 @@
<%= @pl_bouncer_auth_users %>

View File

@@ -0,0 +1,11 @@
[pgbouncer]
listen_addr = <%= @pl_bouncer_listen_addr %>
listen_port = <%= @pl_bouncer_port %>
auth_type = <%= @pl_bouncer_auth_mode %>
auth_file = <%= @pl_bouncer_auth_file %>
pool_mode = <%= @pl_bouncer_pool_mode %>
max_client_conn = <%= @pl_bouncer_mx_cl_conn %>
default_pool_size = <%= @pl_bouncer_pool_size %>
ignore_startup_parameters = extra_float_digits
[databases]

View File

@@ -0,0 +1,405 @@
;;;
;;; PgBouncer configuration file
;;;
;; database name = connect string
;;
;; connect string params:
;; dbname= host= port= user= password= auth_user=
;; client_encoding= datestyle= timezone=
;; pool_size= reserve_pool_size= max_db_connections=
;; pool_mode= connect_query= application_name=
[databases]
;; foodb over Unix socket
;foodb =
;; redirect bardb to bazdb on localhost
;bardb = host=localhost dbname=bazdb
;; access to dest database will go with single user
;forcedb = host=localhost port=300 user=baz password=foo client_encoding=UNICODE datestyle=ISO connect_query='SELECT 1'
;; use custom pool sizes
;nondefaultdb = pool_size=50 reserve_pool_size=10
;; use auth_user with auth_query if user not present in auth_file
;; auth_user must exist in auth_file
; foodb = auth_user=bar
;; run auth_query on a specific database.
; bardb = auth_dbname=foo max_db_client_connections=10
;; fallback connect string
;* = host=testserver
;; User-specific configuration
[users]
;user1 = pool_size=5 reserve_pool_size=2 pool_mode=transaction max_user_connections=10 max_user_client_connections=20
;; Configuration section
[pgbouncer]
;;;
;;; Administrative settings
;;;
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
;;;
;;; Where to wait for clients
;;;
;; IP address or * which means all IPs
listen_addr = localhost
listen_port = 6432
;; Unix socket is also used for -R.
;; On Debian it should be /var/run/postgresql
;unix_socket_dir = /tmp
;unix_socket_mode = 0777
;unix_socket_group =
;; The peer id used to identify this pgbouncer process in a group of pgbouncer
;; processes that are peered together. When set to 0 pgbouncer peering is disabled
;peer_id = 0
;;; Notify client that they are queued after this many seconds
;;; Disabled when set to 0
;query_wait_notify = 5
;;;
;;; TLS settings for accepting clients
;;;
;; disable, allow, require, verify-ca, verify-full
;client_tls_sslmode = disable
;; Path to file that contains trusted CA certs
;client_tls_ca_file = <system default>
;; Private key and cert to present to clients.
;; Required for accepting TLS connections from clients.
;client_tls_key_file =
;client_tls_cert_file =
;; default, secure, fast, normal, <ciphersuite string>
;client_tls_ciphers = default
; TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256
; TLS_AES_128_CCM_8_SHA256 TLS_AES_128_CCM_SHA256
;client_tls13_ciphers =
;; all, secure, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
;client_tls_protocols = secure
;; none, auto, legacy
;client_tls_dheparams = auto
;; none, auto, <curve name>
;client_tls_ecdhcurve = auto
;;;
;;; TLS settings for connecting to backend databases
;;;
;; disable, allow, prefer, require, verify-ca, verify-full
;server_tls_sslmode = prefer
;; Path to that contains trusted CA certs
;server_tls_ca_file = <system default>
;; Private key and cert to present to backend.
;; Needed only if backend server require client cert.
;server_tls_key_file =
;server_tls_cert_file =
;; all, secure, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
;server_tls_protocols = secure
;; default, secure, fast, normal, <ciphersuite string>
;server_tls_ciphers = default
;; See client_tls13_ciphers.
;server_tls13_ciphers =
;;;
;;; Authentication settings
;;;
;; any, trust, plain, md5, cert, hba, ldap, pam
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
;; Path to HBA-style auth config
;auth_hba_file =
;; Path to Pg-ident-style map file
;auth_ident_file =
;; LDAP connection options when "auth_type = ldap"
;auth_ldap_options =
;; Query to use to fetch password from database. Result
;; must have 2 columns - username and password hash.
;auth_query = SELECT rolname, CASE WHEN rolvaliduntil < pg_catalog.now() THEN NULL ELSE rolpassword END FROM pg_authid WHERE rolname=$1 AND rolcanlogin
;; Authentication database that can be set globally to run "auth_query".
;auth_dbname =
;;;
;;; Users allowed into database 'pgbouncer'
;;;
;; comma-separated list of users who are allowed to change settings
admin_users = postgres
;; comma-separated list of users who are just allowed to use SHOW command
stats_users = stats, postgres
;;;
;;; Pooler personality questions
;;;
;; When server connection is released back to pool:
;; session - after client disconnects (default)
;; transaction - after transaction finishes
;; statement - after statement finishes
;pool_mode = session
;; Number of prepared statements to cache on a server connection (zero value
;; disables support of prepared statements).
;max_prepared_statements = 0
;; The number of computational iterations to be performed when
;; encrypting a password using SCRAM-SHA-256.
;scram_iterations = 4096
;; Query for cleaning connection immediately after releasing from
;; client. No need to put ROLLBACK here, pgbouncer does not reuse
;; connections where transaction is left open.
;server_reset_query = DISCARD ALL
;; Whether server_reset_query should run in all pooling modes. If it
;; is off, server_reset_query is used only for session-pooling.
;server_reset_query_always = 0
;; Comma-separated list of parameters to track per client. The
;; Postgres parameters listed here will be cached per client by
;; pgbouncer and restored in server every time the client runs a query.
;track_extra_parameters = IntervalStyle
;; Comma-separated list of parameters to ignore when given in startup
;; packet. Newer JDBC versions require the extra_float_digits here.
;ignore_startup_parameters = extra_float_digits
;; When taking idle server into use, this query is run first.
;server_check_query = select 1
;; If server was used more recently that this many seconds ago,
;; skip the check query. Value 0 may or may not run in immediately.
;server_check_delay = 30
;; Close servers in session pooling mode after a RECONNECT, RELOAD,
;; etc. when they are idle instead of at the end of the session.
;server_fast_close = 0
;; Use <appname - host> as application_name on server.
;application_name_add_host = 0
;; Period for updating aggregated stats.
;stats_period = 60
;;;
;;; Connection limits
;;;
;; Total number of clients that can connect
;max_client_conn = 100
;; Default pool size. 20 is good number when transaction pooling
;; is in use, in session pooling it needs to be the number of
;; max clients you want to handle at any moment
;default_pool_size = 20
;; Minimum number of server connections to keep in pool.
;min_pool_size = 0
; how many additional connection to allow in case of trouble
;reserve_pool_size = 0
;; If a clients needs to wait more than this many seconds, use reserve
;; pool.
;reserve_pool_timeout = 5
;; Maximum number of server connections for a database
;max_db_connections = 0
;; Maximum number of server connections for a user
;max_user_connections = 0
;; If off, then server connections are reused in LIFO manner
;server_round_robin = 0
;;;
;;; Logging
;;;
;; Syslog settings
;syslog = 0
;syslog_facility = daemon
;syslog_ident = pgbouncer
;; log if client connects or server connection is made
;log_connections = 1
;; log if and why connection was closed
;log_disconnections = 1
;; log error messages pooler sends to clients
;log_pooler_errors = 1
;; write aggregated stats into log
;log_stats = 1
;; Logging verbosity. Same as -v switch on command line.
;verbose = 0
;;;
;;; Timeouts
;;;
;; Close server connection if its been connected longer.
;server_lifetime = 3600
;; Close server connection if its not been used in this time. Allows
;; to clean unnecessary connections from pool after peak.
;server_idle_timeout = 600
;; Cancel connection attempt if server does not answer takes longer.
;server_connect_timeout = 15
;; If server login failed (server_connect_timeout or auth failure)
;; then wait this many second before trying again.
;server_login_retry = 15
;; Dangerous. Server connection is closed if query does not return in
;; this time. Should be used to survive network problems, _not_ as
;; statement_timeout. (default: 0)
;query_timeout = 0
;; Dangerous. Client connection is closed if the query is not
;; assigned to a server in this time. Should be used to limit the
;; number of queued queries in case of a database or network
;; failure. (default: 120)
;query_wait_timeout = 120
;; Dangerous. Client connection is closed if the cancellation request
;; is not assigned to a server in this time. Should be used to limit
;; the time a client application blocks on a queued cancel request in
;; case of a database or network failure. (default: 10)
;cancel_wait_timeout = 10
;; Dangerous. Client connection is closed if no activity in this
;; time. Should be used to survive network problems. (default: 0)
;client_idle_timeout = 0
;; Disconnect clients who have not managed to log in after connecting
;; in this many seconds.
;client_login_timeout = 60
;; Clean automatically created database entries (via "*") if they stay
;; unused in this many seconds.
;autodb_idle_timeout = 3600
;; Close connections which are in "IDLE in transaction" state longer
;; than this many seconds.
;idle_transaction_timeout = 0
;; How long SUSPEND/-R waits for buffer flush before closing
;; connection.
;suspend_timeout = 10
;;;
;;; Low-level tuning options
;;;
;; buffer for streaming packets
;pkt_buf = 4096
;; man 2 listen
;listen_backlog = 128
;; Max number pkt_buf to process in one event loop.
;sbuf_loopcnt = 5
;; Maximum PostgreSQL protocol packet size.
;max_packet_size = 2147483647
;; Set SO_REUSEPORT socket option
;so_reuseport = 0
;; networking options, for info: man 7 tcp
;; Linux: Notify program about new connection only if there is also
;; data received. (Seconds to wait.) On Linux the default is 45, on
;; other OS'es 0.
;tcp_defer_accept = 0
;; In-kernel buffer size (Linux default: 4096)
;tcp_socket_buffer = 0
;; whether tcp keepalive should be turned on (0/1)
;tcp_keepalive = 1
;; The following options are Linux-specific. They also require
;; tcp_keepalive=1.
;; Count of keepalive packets
;tcp_keepcnt = 0
;; How long the connection can be idle before sending keepalive
;; packets
;tcp_keepidle = 0
;; The time between individual keepalive probes
;tcp_keepintvl = 0
;; How long may transmitted data remain unacknowledged before TCP
;; connection is closed (in milliseconds)
;tcp_user_timeout = 0
;; DNS lookup caching time
;dns_max_ttl = 15
;; DNS zone SOA lookup period
;dns_zone_check_period = 0
;; DNS negative result caching time
;dns_nxdomain_ttl = 15
;; Custom resolv.conf file, to set custom DNS servers or other options
;; (default: empty = use OS settings)
;resolv_conf = /etc/pgbouncer/resolv.conf
;;;
;;; Random stuff
;;;
;; Hackish security feature. Helps against SQL injection: when PQexec
;; is disabled, multi-statement cannot be made.
;disable_pqexec = 0
;; Config file to use for next RELOAD/SIGHUP
;; By default contains config file from command line.
;conffile
;; Windows service name to register as. job_name is alias for
;; service_name, used by some Skytools scripts.
;service_name = pgbouncer
;job_name = pgbouncer
;; Read additional config from other file
;%include /etc/pgbouncer/pgbouncer-other.ini

View File

@@ -0,0 +1 @@
<%= @pl_ca_crt %>

View File

@@ -0,0 +1,2 @@
psql -U postgres -tc "SELECT 1 FROM pg_database WHERE datname = '<%= @pl_db_name %>'" | grep -q 1 || psql -U postgres -c "CREATE DATABASE <%= @pl_db_name %> OWNER '<%= @pl_owner_name %>' "
psql -U postgres <%= @pl_db_name %> -c 'create extension if not exists <%= @pl_db_extension %>'

View File

@@ -0,0 +1 @@
dropdb -U postgres <%= @pl_db_name %> --if-exists

View File

@@ -0,0 +1 @@
psql -U postgres -c "SELECT datname FROM pg_database WHERE datname='<%= @pl_db_name %>' " | grep -q 1

View File

@@ -0,0 +1 @@
psql -U postgres -c "SELECT datname FROM pg_database WHERE datname='<%= @pl_db_name %>' " | grep -q 1

View File

@@ -17,4 +17,4 @@ local replication all md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
host all all 0.0.0.0/0 md5
# custom rules below

View File

@@ -0,0 +1,3 @@
# description: <%=@name%>
<%= @pl_auth_type %> <%= @pl_auth_database %> <%= @pl_auth_user %> <%= @pl_auth_address %> <%=@pl_auth_method %> <%=@ql_auth_option%>

View File

@@ -0,0 +1 @@
psql -U postgres -c "<%= @pl_role_status %> <%= @pl_role_name %> WITH <%= @pl_role_attributes %> PASSWORD '<%= @pl_role_pw %>'"

View File

@@ -0,0 +1 @@
psql -U postgres -c "SELECT usename FROM pg_user WHERE usename='<%= @pl_role_name %>' " | grep -o 1

View File

@@ -0,0 +1 @@
<%= @pl_server_crt %>

View File

@@ -0,0 +1 @@
<%= @pl_server_key %>