pg_config
Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x
- Puppet >= 5.0.0 < 9.0.0
- , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'enterprisemodules-pg_config', '1.0.0'
Learn more about managing modules with a PuppetfileDocumentation
Table of Contents
Overview
On the Puppet forge there are already some modules available that can help you install the postgres software on your system. Most of these modules, however, are missing facilities for you to create and configure databases.
The pg_config module is the missing link. This module extends the puppet language so that Puppet knows about Postgres and the things there are to manage inside of a Postgres database.
The module support Postgres 10,11,12,13,14 and 15
The module supports multiple instances of Postgres on a system.
License
This is a commercially licensed module. But you can use the module on VirtualBox based development systems for FREE. When used on real systems a license is required.
You can license our modules in multiple ways. Our basic licensing model requires a subscription per node. But contact us for details.
Check the License for details.
Description
- Create, manage and drop Postgres databases (pg_database)
- Manage the parameter setting of a Postgres database (pg_parameter)
- Create, manage and drop Postgres users and roles (pg_role)
- Create, manage and drop Postgres tablespaces (pg_tablespaces)
- Create, update, manage and drop Postgres schema definitions (pg_schema_definition)
- Create, update, manage and drop (configuration) records in a Postgres table. (pg_record)
- Create your own custom facts based on Postgres database content
- An easy way to execute arbitrary SQL scripts with
unless
andonly_if
inhibitors to facilitate idempotence. (pg_exec)
Check the documentation here
Setup
Requirements
The pg_config
module requires:
- Puppet module
enterprisemodules-easy_type
installed. - Puppet version 6.0 or higher. Can be Puppet Enterprise or Puppet Open Source
- A valid Enterprise Modules license for usage.
- Runs on most Linux systems.
Installing the pg_config module
To install these modules, you can use a Puppetfile
mod 'enterprisemodules/pg_config' ,'x.x.x'
Then use the librarian-puppet
or r10K
to install the software.
You can also install the software using the puppet module
command:
puppet module install enterprisemodules-pg_config
Usage
Building a total Postgre setup requires quite some work. To help you, we have built some examples. The repo contains a demonstration of a simple database installation and configuration.
Reference
Here you can find some more information regarding this puppet module:
Limitations
This module runs on most Linux versions. It requires a puppet version 5 or higher. The module does NOT run on windows systems.
History
23-06-2023 Version 1.0.0
- [core] Add support for Puppet 8
30-11-2022 Version 0.11.0
- [core] Add support for connecting with a specified db user
25-11-2022 Version 0.10.0
- [pg_cluster] Add user and allow_group_access properties
24-11-2022 Version 0.9.1
- [core] Fix connection to the database
03-10-2022 Version 0.9.0
- [core] Add support for EL 9
- [docs] Small update to documentation
01-10-2022 Version 0.8.1
- [facts] Fix facts for cluster db’s only
01-10-2022 Version 0.8.0
- [core] Add support for instances
- [pg_instance] Initial implementation
- [pg_cluster] Initial implementation
- [docs] Update documentation
23-09-2022 Version 0.7.0
- [pg_validation] Initial version
- [core] Change ruby namespace from Puppet_X to PuppetX
18-03-2022 Version 0.6.0
[release] Add support for AlmaLinux and Rocky
26-09-2021 Version 0.5.0
[pg_major_version] Fix version detection on beta versions of pg [core] Postgres running fact added [core] Only query the cluster database for some data [core] Remove old copied files
28-05-2021 Version 0.4.2
- [pg_parameter] Fix typo
28-05-2021 Version 0.4.1
- [pg_parameter] Allow override of vartype
26-05-2021 Version 0.4.0
- [pg_function] Initial implementation
- [core] Fix handling of sql scripts
25-05-2021 Version 0.3.1
- [release] Fix undefined method errors
25-05-2021 Version 0.3.0
- [pg_extension] Initial implementation
- [functions] Add function::pg_config::on_db
- [facts] create fact pg_extensions
- [core] Fix feature that detects if postgres is running
10-05-2021 Version 0.2.0
- [facts] Added pg_major_version fact and removed pg_fact when postgres not yet installed.
10-05-2021 Version 0.1.2
- [docs] Fix running facts
07-05-2021 Version 0.1.1
- [docs] Fix links to documentation
07-05-2021 Version 0.1.0
- Initial version
Dependencies
- enterprisemodules/easy_type (>= 2.25.0 < 3.0.0)
Enterprise Modules License d.d. January 2018 This license (“License”) governs the terms and conditions under which pg_config module (“the Software”) is licensed by Enterprise Modules B.V, a limited liability company in the Netherlands, registered in the Dutch Chamber of Commerce: 63689537 (“Licensor”), to the user of the Software (“Licensee”). Article 1. Grant of license 1.1 Licensor hereby grants to Licensee the right to use the Software for its internal business purposes. 1.2 The license granted in the previous paragraph is limited to the use on VirtualBox Virtual machines. For further use a commercial license must be directly obtained from Licensor. Article 2. License limitations 2.1 All right, title and interest to the Software, the accompanying documentation and all modifications and extensions thereto rest and remain with Licensor. Licensee only has the rights and permissions explicitly granted by this License or granted in writing otherwise. Licensee shall not use, copy, modify, distribute or publish the Software in any other manner. Nothing in this License is intended to, and shall not be construed to, transfer to Licensee any rights in intellectual property developed by Licensor. 2.2 In particular, Licensee shall not: a) provide copies of the Software to third parties, including to entities controlling, controlled by or under common control with Licensee; b) sublicense the Software or otherwise make available the Software to such third parties, including by rental, Software-as-a-Service models or otherwise; c) remove indications of Licensor as copyright holder of the Software or to remove or render illegible any part thereof. 2.3 The Software comprises third-party open source software. The respective third-party rights holders grant Licensee the rights indicated in the applicable open source licenses. These licenses can be found in the documentation. The License does not apply to this open source software, and nothing in this License shall be construed as a limitation of any right granted under an open source license. Article 3. Trademark 3.1 This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Software. Article 4. Limitation of Liability 4.1 Licensor provides the Software on an "AS IS" basis, and expressly disclaims all conditions, representations or warranties, express or implied, including without limitation any implied warranties of merchantability, fitness for a particular purpose, and non-infringement of third party rights regarding the Software. Licensor is solely responsible for determining the appropriateness of using the Software and assume any risks associated arising out of or in connection with the Software and this License. 4.2 Licensor shall not be liable for any damages, including consequential, special, punitive and/or incidental damages or fines imposed by regulatory bodies, arising out of or in connection with the Software and this License. 4.3 Licensee shall release, defend, indemnify and hold harmless Licensor from and against any and all claims, damages and liability arising in connection with the Software, including from claims, damages or liability from customers of Licensee. Article 5. Miscellaneous 5.1 Licensor reserves the right to change any or all parts of this License without prior notice. 5.2 The law of the Netherlands governs this License and the terms and conditions therein. 5.3 Any disputes arising between Licensor and Licensee in connection with the License will be settled by the competent courts in the Netherlands for the principal place of business of the Licensor.