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.