description
Overview
Overview
The pg_profile::database
class contains all the Puppet code to install, create and populate an Postgres database. This class is an easy way to get started. It contains the following steps:
- em_license ( Manage Enterprise Modules Licenses)
- disable_thp ) Disable transparant Huge pages)
- sysctl ( Setup any sysctl parameters)
- limits ( Setup any security limits)
- groups_and_users ( Setup required groups and users)
- packages ( Setup any required after_packages)
- firewall ( Setup the firewall)
- db_software ( Install the postgres software)
- db_clusters ( Manage Postgres database clusters)
- db_instances ( Manage database enstances)
- db_roles ( Ensure required Postgres database roles)
- db_definition ( Ensure required Postgress databases)
- db_parameters ( Ensure required Postgres database settings)
- db_tablespaces ( Ensure needed tablespaces)
- db_schemas ( Ensure needed database schema’s)
- db_records ( Ensure required database records (for settings))
All these steps have a default implementation. This implementation is suitable to get started with. These classed all have parameters you can customize through hiera values. The defaults are specified in the module’s data/default.yaml
file.
But sometimes this is not enough and you would like to add some extra definitions, you can, for example, add a Puppet class to be executed after the systctl
stage is done and before the limits
is done. You can do this by adding the next line to your yaml data:
pg_profile::database::before_sysctl: my_profile::my_extra_class
or after:
pg_profile::database::after_sysctl: my_profile::my_extra_class
If you want to, you can also skip this provided class:
pg_profile::database::sysctl: skip
Or provide your own implementation:
pg_profile::database::sysctl: my_profile::my_own_implementation
This mechanism can be used for all named steps and makes it easy to move from an easy setup with a running standard database to a fully customized setup using a lot of your own classes plugged in.