Files
zulip/puppet/zulip_ops/manifests/postgres_common.pp
Alex Vandiver 0774f54c1b puppet: Move to setup_disks to postgres_common.
The tooling should now be run no matter if the node is a primary or
replica.
2020-06-11 21:01:49 -07:00

57 lines
1.6 KiB
Puppet

class zulip_ops::postgres_common {
include zulip::postgres_common
$common_packages = ['xfsprogs']
package { $common_packages: ensure => 'installed' }
$wal_g_version = '0.2.15'
$wal_g_hash = 'ea33c2341d7bfb203c6948590c29834c013ab06a28c7a2b236a73d906f785c84'
exec {'install-wal-g':
command => "${::zulip_scripts_path}/setup/install-wal-g ${wal_g_version} ${wal_g_hash}",
creates => "/usr/local/bin/wal-g-${wal_g_version}",
}
file { '/usr/local/bin/wal-g':
ensure => 'link',
target => "/usr/local/bin/wal-g-${wal_g_version}",
}
cron { 'pg_backup_and_purge':
ensure => present,
command => '/usr/local/bin/pg_backup_and_purge',
environment => 'PATH=/bin:/usr/bin:/usr/local/bin',
hour => 5,
minute => 0,
target => 'postgres',
user => 'postgres',
require => [
File['/usr/local/bin/pg_backup_and_purge'],
Package[
"postgresql-${zulip::base::postgres_version}",
'python3-dateutil',
]
]
}
exec { 'sysctl_p':
command => '/sbin/sysctl -p /etc/sysctl.d/40-postgresql.conf',
subscribe => File['/etc/sysctl.d/40-postgresql.conf'],
refreshonly => true,
}
file { '/root/setup_disks.sh':
ensure => file,
owner => 'root',
group => 'root',
mode => '0744',
source => 'puppet:///modules/zulip_ops/postgresql/setup_disks.sh',
}
exec { 'setup_disks':
command => '/root/setup_disks.sh',
require => Package["postgresql-${zulip::base::postgres_version}", 'xfsprogs'],
unless => 'test $(readlink /var/lib/postgresql) = "/srv/postgresql/" -a -d /srv/postgresql',
}
}