X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fpostgres%2Fmanifests%2Fbackup_cluster.pp;h=98c77bc8f654a5bccb371a8b2ccfd925174490fd;hb=7af16f703228c0239f4adae38d04ef7612b611c3;hp=f1cc44ad1120b6867d3dbd01eeddcbe99950ff08;hpb=2dd6e5b9cf576710e1876b844561a7e3e69faeda;p=mirror%2Fdsa-puppet.git diff --git a/modules/postgres/manifests/backup_cluster.pp b/modules/postgres/manifests/backup_cluster.pp index f1cc44ad1..98c77bc8f 100644 --- a/modules/postgres/manifests/backup_cluster.pp +++ b/modules/postgres/manifests/backup_cluster.pp @@ -1,13 +1,20 @@ +# Backup this cluster # +# @param pg_version pg version of the cluster +# @param pg_backup_role replication role username +# @param pg_cluster cluster name +# @param pg_port port of the postgres cluster +# @param db_backup_role_password password of the replication role +# @param do_role create the role (requires setup with postgresql::server) +# @param do_hba update pg_hba (requires setup with postgresql::server) define postgres::backup_cluster( String $pg_version, + String $db_backup_role = lookup('postgres::backup_cluster::db_backup_role'), String $pg_cluster = 'main', Integer $pg_port = 5432, - String $db_backup_role = 'debian-backup', String $db_backup_role_password = hkdf('/etc/puppet/secret', "postgresql-${::hostname}-${$pg_cluster}-${pg_port}-backup_role}"), Boolean $do_role = false, Boolean $do_hba = false, - $backup_servers = getfromhash($deprecated::roles, 'postgres_backup_server'), ) { $datadir = "/var/lib/postgresql/${pg_version}/${pg_cluster}" file { "${datadir}/.nobackup": @@ -17,7 +24,6 @@ define postgres::backup_cluster( ## XXX - get these from the roles and ldap # backuphost, storace $backup_servers_addrs = ['5.153.231.12/32', '93.94.130.161/32', '2001:41c8:1000:21::21:12/128', '2a02:158:380:280::161/128'] - $backup_servers_addrs_joined = join($backup_servers_addrs, ' ') if $do_role { postgresql::server::role { $db_backup_role: @@ -37,10 +43,10 @@ define postgres::backup_cluster( } } } - ferm::rule { "dsa-postgres-${pg_port}": + ferm::rule::simple { "dsa-postgres-backup-${pg_port}": description => 'Allow postgress access from backup host', - domain => '(ip ip6)', - rule => "&SERVICE_RANGE(tcp, ${pg_port}, ( @ipfilter((${backup_servers_addrs_joined})) ))", + port => $pg_port, + saddr => $backup_servers_addrs, } postgres::backup_server::register_backup_cluster { "backup-role-${::fqdn}}-${pg_port}":