mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
wal-g: Provide a to-local-disk backup option.
This commit is contained in:
committed by
Tim Abbott
parent
6fc3357a88
commit
44ff1c24df
@@ -4,27 +4,36 @@ if [ -z "$ZULIP_SECRETS_CONF" ]; then
|
||||
fi
|
||||
|
||||
export PGHOST=/var/run/postgresql/
|
||||
AWS_REGION=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_region 2>/dev/null)
|
||||
if [ "$AWS_REGION" = "" ]; then
|
||||
# Fall back to the current region, if possible
|
||||
AZ=$(ec2metadata --availability-zone || true)
|
||||
if [ -n "$AZ" ] && [ "$AZ" != "unavailable" ]; then
|
||||
AWS_REGION=$(echo "$AZ" | sed 's/.$//')
|
||||
fi
|
||||
fi
|
||||
export AWS_REGION
|
||||
AWS_ACCESS_KEY_ID=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_backups_key 2>/dev/null)
|
||||
export AWS_ACCESS_KEY_ID
|
||||
AWS_SECRET_ACCESS_KEY=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_backups_secret_key 2>/dev/null)
|
||||
export AWS_SECRET_ACCESS_KEY
|
||||
if ! s3_backups_bucket=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_backups_bucket 2>&1); then
|
||||
echo "Could not determine which s3 bucket to use:" "$s3_backups_bucket"
|
||||
exit 1
|
||||
fi
|
||||
export WALG_S3_PREFIX="s3://$s3_backups_bucket"
|
||||
|
||||
if storage_class=$(crudini --get /etc/zulip/zulip.conf postgresql backups_storage_class 2>&1); then
|
||||
export WALG_S3_STORAGE_CLASS="$storage_class"
|
||||
s3_backups_bucket=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_backups_bucket 2>/dev/null)
|
||||
|
||||
if [ "$s3_backups_bucket" != "" ]; then
|
||||
AWS_REGION=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_region 2>/dev/null)
|
||||
if [ "$AWS_REGION" = "" ]; then
|
||||
# Fall back to the current region, if possible
|
||||
AZ=$(ec2metadata --availability-zone || true)
|
||||
if [ -n "$AZ" ] && [ "$AZ" != "unavailable" ]; then
|
||||
AWS_REGION=$(echo "$AZ" | sed 's/.$//')
|
||||
fi
|
||||
fi
|
||||
export AWS_REGION
|
||||
AWS_ACCESS_KEY_ID=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_backups_key 2>/dev/null)
|
||||
export AWS_ACCESS_KEY_ID
|
||||
AWS_SECRET_ACCESS_KEY=$(crudini --get "$ZULIP_SECRETS_CONF" secrets s3_backups_secret_key 2>/dev/null)
|
||||
export AWS_SECRET_ACCESS_KEY
|
||||
export WALG_S3_PREFIX="s3://$s3_backups_bucket"
|
||||
|
||||
if storage_class=$(crudini --get /etc/zulip/zulip.conf postgresql backups_storage_class 2>&1); then
|
||||
export WALG_S3_STORAGE_CLASS="$storage_class"
|
||||
fi
|
||||
else
|
||||
WALG_FILE_PREFIX=$(crudini --get /etc/zulip/zulip.conf postgresql backups_directory 2>/dev/null)
|
||||
if [ "$WALG_FILE_PREFIX" != "" ]; then
|
||||
export WALG_FILE_PREFIX
|
||||
else
|
||||
echo "Could not determine where to back up data to!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
exec /usr/local/bin/wal-g "$@"
|
||||
|
@@ -50,6 +50,16 @@ class zulip::postgresql_backups {
|
||||
],
|
||||
}
|
||||
|
||||
$postgresql_backup_directory = zulipconf('postgresql', 'backups_directory', '')
|
||||
if $postgresql_backup_directory != '' {
|
||||
file { $postgresql_backup_directory:
|
||||
ensure => directory,
|
||||
owner => 'postgres',
|
||||
group => 'postgres',
|
||||
mode => '0600',
|
||||
}
|
||||
}
|
||||
|
||||
file { "${zulip::common::nagios_plugins_dir}/zulip_postgresql_backups":
|
||||
require => Package[$zulip::common::nagios_plugins],
|
||||
recurse => true,
|
||||
|
@@ -100,8 +100,9 @@ class zulip::postgresql_base {
|
||||
}
|
||||
}
|
||||
|
||||
$s3_backups_bucket = zulipsecret('secrets', 's3_backups_bucket', '')
|
||||
if $s3_backups_bucket != '' {
|
||||
$backups_s3_bucket = zulipsecret('secrets', 's3_backups_bucket', '')
|
||||
$backups_directory = zulipconf('postgresql', 'backups_directory', '')
|
||||
if $backups_s3_bucket != '' or $backups_directory != '' {
|
||||
include zulip::postgresql_backups
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user