X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=environments%2Fproduction%2Fmanifests%2Fpostgres-primary.pp;fp=environments%2Fproduction%2Fmanifests%2Fpostgres-primary.pp;h=9d28846af48431ffd362b705c3bcd12c6e605fda;hb=34978e07455b07294e62dbf76836c913d712a81f;hp=c1f015aa7425f3af8522dd693916abf944f88ca1;hpb=a5d122b99b89ba755fd0932dd35c82babd2d31bb;p=infra.git diff --git a/environments/production/manifests/postgres-primary.pp b/environments/production/manifests/postgres-primary.pp index c1f015a..9d28846 100644 --- a/environments/production/manifests/postgres-primary.pp +++ b/environments/production/manifests/postgres-primary.pp @@ -2,17 +2,31 @@ node postgres-primary { include container::contained include container::no_ssh + exec { 'backup installed': + before => Package['postgresql'], + notify => Exec['backup permissions corrected'], + command => '! [ -f /var/lib/postgresql/9.6/main/PG_VERSION ] && mkdir -p /var/lib/postgresql/9.6/main && tar xzf /var/lib/postgresql/pg_base.tar.gz -C /var/lib/postgresql/9.6/main', + onlyif => '[ -f /var/lib/postgresql/pg_base.tar.gz ]', + provider => 'shell' + } package{ 'postgresql': ensure => 'installed', install_options => ['--no-install-recommends'], - } - + }-> class { 'postgresql::globals': version => '9.6', }-> class { 'postgresql::server': listen_addresses => '*', - } -> + } + exec { 'backup permissions corrected': + require => Class['postgresql::server::install'], + before => Class['postgresql::server::initdb'], + command => 'chown -R postgres:postgres /var/lib/postgresql && rm /var/lib/postgresql/pg_base.tar.gz', + onlyif => '[ -f /var/lib/postgresql/pg_base.tar.gz ]', + refreshonly => 'true', + provider => 'shell' + } postgresql::server::db { 'gigi': require => Package['postgresql'], user => 'gigi', @@ -30,7 +44,7 @@ node postgres-primary { } postgresql::server::db { 'quiz': - require => Class['postgresql::server'], + require => Exec['backup installed'], user => 'quiz', password => postgresql_password('quiz', $passwords[postgres][quiz]), } @@ -55,6 +69,7 @@ node postgres-primary { value => 'on' } file{'/var/lib/postgresql/archive/': + require => Exec['backup permissions corrected'], ensure => 'directory', owner => 'postgres' } ->