Setup a cron job for regular full Mysql/Mariadb database dumps.
Assumes root
has password-less access to all databases.
This requires a cron daemon to already be running. This should be the default on most systems.
Required:
mysql_backup_dir
: Save backups in this directory
Optional:
mysql_backup_filename_format
: A filename containing unixdate
format sequences, default{{ ansible_hostname }}-%Y%m%d-%H%M%S.mysqldump
. This can be used to automatically overwrite backups on a rolling basis.mysql_backup_frequency
: This must match one of the standard/etc/cron.*
directories, typically eitherdaily
(default),hourly
,weekly
ormonthly
.mysql_backup_minimum_expected_size
: The minimum size in bytes of the backup file. The cron job will return an error if the file is smaller than this.
# This will name the backup file /nfs/backups/HOSTNAME-Mon.mysqldump
# where Mon will be replaced by the abbreviated day of the week, resulting
# in daily backups on a rolling weekly cycle
- hosts: mysql-servers
roles:
- role: ome.mysql_backup
mysql_backup_dir: /nfs/backups
mysql_backup_filename_format: "{{ ansible_hostname }}-%a.mysqldump"
mysql_backup_minimum_expected_size: 100000