- Ansible: basic, with-exporter, with-notifications, enterprise playbooks - Kubernetes: CronJob, ConfigMap, ServiceMonitor, PVC manifests - Prometheus: alerting rules (RPO/RTO/failure) and scrape configs - Terraform: AWS S3 bucket with lifecycle policies - Scripts: GFS backup rotation and health check (Nagios compatible) All playbooks support: - Scheduled backups with systemd timers - GFS retention policies - Prometheus metrics exporter - SMTP/Slack/webhook notifications - Encrypted backups with cloud upload
58 lines
1.9 KiB
Django/Jinja
58 lines
1.9 KiB
Django/Jinja
# dbbackup Environment Variables
|
|
# Managed by Ansible - do not edit manually
|
|
# Permissions: 0600 (secrets inside)
|
|
|
|
{% if dbbackup_db_password is defined %}
|
|
# Database Password
|
|
{% if dbbackup_db_type == 'postgres' %}
|
|
PGPASSWORD={{ dbbackup_db_password }}
|
|
{% else %}
|
|
MYSQL_PWD={{ dbbackup_db_password }}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if dbbackup_encryption_enabled and dbbackup_encryption_key is defined %}
|
|
# Encryption Key
|
|
DBBACKUP_ENCRYPTION_KEY={{ dbbackup_encryption_key }}
|
|
{% endif %}
|
|
|
|
{% if dbbackup_cloud_enabled %}
|
|
# Cloud Storage Credentials
|
|
{% if dbbackup_cloud_provider in ['s3', 'minio', 'b2'] %}
|
|
AWS_ACCESS_KEY_ID={{ dbbackup_cloud_access_key | default('') }}
|
|
AWS_SECRET_ACCESS_KEY={{ dbbackup_cloud_secret_key | default('') }}
|
|
{% endif %}
|
|
{% if dbbackup_cloud_provider == 'azure' %}
|
|
AZURE_STORAGE_ACCOUNT={{ dbbackup_cloud_access_key | default('') }}
|
|
AZURE_STORAGE_KEY={{ dbbackup_cloud_secret_key | default('') }}
|
|
{% endif %}
|
|
{% if dbbackup_cloud_provider == 'gcs' %}
|
|
GOOGLE_APPLICATION_CREDENTIALS={{ dbbackup_cloud_credentials_file | default('/etc/dbbackup/gcs-credentials.json') }}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if dbbackup_notify_smtp_enabled %}
|
|
# SMTP Notifications
|
|
NOTIFY_SMTP_HOST={{ dbbackup_notify_smtp_host }}
|
|
NOTIFY_SMTP_PORT={{ dbbackup_notify_smtp_port }}
|
|
NOTIFY_SMTP_USER={{ dbbackup_notify_smtp_user }}
|
|
{% if dbbackup_notify_smtp_password is defined %}
|
|
NOTIFY_SMTP_PASSWORD={{ dbbackup_notify_smtp_password }}
|
|
{% endif %}
|
|
NOTIFY_SMTP_FROM={{ dbbackup_notify_smtp_from }}
|
|
NOTIFY_SMTP_TO={{ dbbackup_notify_smtp_to | join(',') }}
|
|
{% endif %}
|
|
|
|
{% if dbbackup_notify_webhook_enabled %}
|
|
# Webhook Notifications
|
|
NOTIFY_WEBHOOK_URL={{ dbbackup_notify_webhook_url }}
|
|
{% if dbbackup_notify_webhook_secret is defined %}
|
|
NOTIFY_WEBHOOK_SECRET={{ dbbackup_notify_webhook_secret }}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if dbbackup_notify_slack_enabled %}
|
|
# Slack Notifications
|
|
NOTIFY_WEBHOOK_URL={{ dbbackup_notify_slack_webhook }}
|
|
{% endif %}
|