DE
deric/puppet-pgbackrest
Module for managing PostgreSQL backups using pgBackRest
pgbackrest
Puppet module for managing PostgreSQL backups using pgBackRest.
Basic Usage
On database server
include pgbackrest::stanzaconfigure backups schedule:
pgbackrest::stanza::backups:
eu-west: # host_group name
incr:
hour: 3
minute: 50
weekday: [0-1,3-6] # every day except Tuesday
full:
hour: 1
minute: 10
weekday: 2 # Tuesday full backupOn storage (backup) server:
include pgbackrest::repositoryrepository config:
pgbackrest::repository::config:
global:
repo1-path: /backup/pgbackrest
repo1-retention-full: 1
log-level-console: info
log-level-file: detail
start-fast: 'y'
delta: 'y'
backup-standby: 'y'
archive-timeout: 3600
global:archive-push:
compress-level: 3
compress-type: lz4How Does This Work
pgbackrest::stanza
Should be included on a database server. Exported statements are not executed on stanza (database) server, but will be collected by an assigned repository with matching host_group (if exists).
- Install
pgbackrestpackage - Generate ssh keys (if given ssh key doesn't exist) and export public ssh key (only if
pgbackrest::manage_ssh_keys: true), default:false - Export host ssh key (only if
pgbackrest::manage_host_keys: true), default:true - Create a PostgreSQL user
pgbackrest::db_userand databasepgbackrest::db_namewith randomly generated password, default user:backup(whenpgbackrest::stanza::manage_dbuser: true) - Export username and password for
.pgpassfile - Grant
pgbackrest::db_usernecessary permissions for executingpg_basebackupand allow connection from repository server (whenpgbackrest::manage_hba: true) - Export
pgbackrest stanza-createcommand - Export cron configs for backup jobs
- Import host ssh key of
repositoryserver matching thehost_group(ifpgbackrest::manage_host_keys: true) - Import public ssh key of
repositoryserver matching thehost_group
pgbackrest::repository
Repository is a server where backups are stored (though could be located on the same server).
- Install
pgbackrestpackage - Generate ssh keys (if given ssh key doesn't exist) and export public ssh key (only if
pgbackrest::manage_ssh_keys: true), default:false - Create local unix account
pgbackrest::backup_user - Create directories for storing backups, logs, temporary data
Common params
pgbackrest::backup_dirdirectory where backups will be stored
Caveats
- This module does NOT manage firewall rules
- At least two Puppet runs are required to apply all configuration.
On this page
Languages
Puppet60.7%Ruby37.1%Pascal1.8%Dockerfile0.4%
Contributors
Created December 20, 2022
Updated February 5, 2026