class { 'postgresql::server': config_hash => { 'ip_mask_deny_postgres_user' => '0.0.0.0/32', 'ip_mask_allow_all_users' => '0.0.0.0/0', 'listen_addresses' => '*', 'manage_redhat_firewall' => true, 'postgres_password' => 'postgres', }, } file { '/tmp': ensure => 'directory', } file { '/tmp/pg_tablespaces': ensure => 'directory', owner => 'postgres', group => 'postgres', mode => '0700', require => File['/tmp'], } postgresql::tablespace{ 'tablespace1': location => '/tmp/pg_tablespaces/space1', require => [Class['postgresql::server'], File['/tmp/pg_tablespaces']], } postgresql::database{ 'tablespacedb1': # TODO: ensure not yet supported #ensure => present, charset => 'utf8', require => Class['postgresql::server'], } postgresql::database{ 'tablespacedb2': # TODO: ensure not yet supported #ensure => present, charset => 'utf8', tablespace => 'tablespace1', require => Postgresql::Tablespace['tablespace1'], } postgresql::db{ 'tablespacedb3': # TODO: ensure not yet supported #ensure => present, user => 'dbuser1', password => 'dbuser1', require => Class['postgresql::server'], } postgresql::db{ 'tablespacedb4': # TODO: ensure not yet supported #ensure => present, user => 'dbuser2', password => 'dbuser2', tablespace => 'tablespace1', require => Postgresql::Tablespace['tablespace1'], } postgresql::database_user{ 'spcuser': # TODO: ensure is not yet supported #ensure => present, password_hash => postgresql_password('spcuser', 'spcuser'), require => Class['postgresql::server'], } postgresql::tablespace{ 'tablespace2': location => '/tmp/pg_tablespaces/space2', owner => 'spcuser', require => [Postgresql::Database_user['spcuser'], File['/tmp/pg_tablespaces']], } postgresql::database{ 'tablespacedb5': # TODO: ensure not yet supported #ensure => present, charset => 'utf8', tablespace => 'tablespace2', require => Postgresql::Tablespace['tablespace2'], }