pg: put postgres ssh keys onto backup server
[mirror/dsa-puppet.git] / modules / salsa / manifests / database.pp
index de6d2db..b363b79 100644 (file)
@@ -1,24 +1,38 @@
 #
 class salsa::database inherits salsa {
-# XXX does not work just yet.
+       class { 'postgresql::globals':
+               version => '9.6',
+       }
+       class { 'postgresql::server':
+               listen_addresses => '*',
+       }
+       class { 'postgresql::server::contrib': }
 
-#      include postgresql::server
-#
-#      postgresql::server::db { $salsa::db_name:
-#              user     => $salsa::db_role,
-#              password => postgresql_password($salsa::db_role, $salsa::db_password),
-#      }
-#
-#      postgresql::server::extension { 'pg_trgm':
-#              database => $salsa::db_name,
-#      }
+       postgresql::server::db { $salsa::db_name:
+               user     => $salsa::db_role,
+               password => postgresql_password($salsa::db_role, $salsa::db_password),
+       }
 
-# so do things by hand for now
-       ensure_packages ( "postgresql", { ensure => 'installed' })
-       # create role, create db owned by role, add extension
+       postgresql::server::extension { 'pg_trgm':
+               database => $salsa::db_name,
+               require => Class['postgresql::server::contrib'],
+       }
 
-       # XXX set up backups
-       file { "/var/lib/postgresql/9.6/main/.nobackup":
+       include postgres::backup_source
+       $datadir = assert_type(String[1], $postgresql::params::datadir)
+       warning("foo ")
+       file { "${datadir}/.nobackup":
                content  => ""
        }
+       if $::postgresql_key {
+               $ipaddr = assert_type(String[1], join(getfromhash($site::nodeinfo, 'ldap', 'ipHostNumber'), ","))
+
+               @@concat::fragment { "onion::balance::instance::dsa-snippet::$name::$fqdn":
+                       target  => "/etc/dsa/postgresql-backup/sshkeys-sources",
+                       content  => @("EOF"),
+                                       ${::hostname} ${ipaddr} ${::postgresql_key}
+                                       | EOF
+                       tag     => "postgresql::server::backup-source-sshkey",
+               }
+       }
 }