class zulip_ops::postgres_common { include zulip::postgres_common $internal_postgres_packages = [# dependencies for our wal-e backup system 'lzop', 'pv', 'python3-pip', 'python-pip', 'python3-gevent', 'python-gevent', ] package { $internal_postgres_packages: ensure => 'installed' } exec {'pip_wal-e': # On trusty, there is no python3-boto or python3-gevent package, # so we keep our `wal-e` explicitly on Python 2 for now. command => '/usr/bin/pip2 install git+git://github.com/zbenjamin/wal-e.git#egg=wal-e', creates => '/usr/local/bin/wal-e', require => Package['python-pip', 'python-boto', 'python-gevent', 'lzop', 'pv'], } 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', 'python-dateutil' ] ] } exec { 'sysctl_p': command => '/sbin/sysctl -p /etc/sysctl.d/40-postgresql.conf', subscribe => File['/etc/sysctl.d/40-postgresql.conf'], refreshonly => true, } }