68 lines
1.9 KiB
YAML
68 lines
1.9 KiB
YAML
|
---
|
||
|
# Needs variables:
|
||
|
# - item: dict describing the site install (cf group_vars/all/vars.yml)
|
||
|
# - site_data_path: path of the site's data
|
||
|
|
||
|
- name: "Site's data backups"
|
||
|
block:
|
||
|
- name: "Setup weekly backup of site's data"
|
||
|
cron:
|
||
|
name: "backup {{ item.slug }} data"
|
||
|
# hour: "{{ 24 | random }}"
|
||
|
# minute: "{{ 60 | random }}"
|
||
|
special_time: weekly
|
||
|
user: "root"
|
||
|
job: "tar czf {{ backups_path }}/{{ item.slug }}.tar.gz {{ site_data_path }}"
|
||
|
become: yes
|
||
|
- name: "Setup data backup rotation with logrotate"
|
||
|
blockinfile:
|
||
|
path: "/etc/logrotate.d/{{ item.slug }}"
|
||
|
marker: "# {mark} DATA BACKUP"
|
||
|
create: yes
|
||
|
block: |
|
||
|
{{ backups_path }}/{{ item.slug }}.tar.gz {
|
||
|
weekly
|
||
|
rotate 4
|
||
|
nocompress
|
||
|
dateext
|
||
|
dateformat _%Y-%m-%d
|
||
|
extension .tar.gz
|
||
|
missingok
|
||
|
}
|
||
|
become: yes
|
||
|
when: site_data_path is defined
|
||
|
|
||
|
- name: "Site's database backups"
|
||
|
block:
|
||
|
# You need your root MySQL password stored in /root/.my.cnf to avoid
|
||
|
# putting the password in the crontab
|
||
|
- name: "Setup weekly backup of database"
|
||
|
cron:
|
||
|
name: "backup {{ item.slug }} database"
|
||
|
special_time: weekly
|
||
|
user: "root" # need root for passwordless mysqldump
|
||
|
job: "mysqldump {{ item.mysql_database }} | gzip -c > {{ backups_path }}/{{ item.slug }}.sql.gz"
|
||
|
become: yes
|
||
|
- name: "Setup database backup rotation with logrotate"
|
||
|
blockinfile:
|
||
|
path: "/etc/logrotate.d/{{ item.slug }}"
|
||
|
marker: "# {mark} DATABASE BACKUP"
|
||
|
create: yes
|
||
|
block: |
|
||
|
{{ backups_path }}/{{ item.slug }}.sql.gz {
|
||
|
weekly
|
||
|
rotate 4
|
||
|
nocompress
|
||
|
dateext
|
||
|
dateformat _%Y-%m-%d
|
||
|
extension .sql.gz
|
||
|
missingok
|
||
|
}
|
||
|
become: yes
|
||
|
when: item.mysql_database is defined
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|