automation/deployer/roles/build/tasks/backup.yml

66 lines
2 KiB
YAML
Raw Normal View History

2020-05-05 09:08:24 +00:00
---
# Needs variables:
# - site: dict describing the site install (cf group_vars/all/vars.yml)
2020-05-05 09:08:24 +00:00
# - site_data_path: path of the site's data
- name: "Data backups"
2020-05-05 09:08:24 +00:00
block:
- name: "Setup weekly backup of site's data"
cron:
name: "backup {{ site.slug }} data"
2020-05-05 09:08:24 +00:00
# hour: "{{ 24 | random }}"
# minute: "{{ 60 | random }}"
special_time: weekly
user: "root"
job: "tar czf {{ backups_path }}/{{ site.slug }}.tar.gz {{ site_data_path }}"
2020-05-05 09:08:24 +00:00
become: yes
- name: "Setup data backup rotation with logrotate"
blockinfile:
path: "/etc/logrotate.d/{{ site.slug }}"
2020-05-05 09:08:24 +00:00
marker: "# {mark} DATA BACKUP"
create: yes
block: |
{{ backups_path }}/{{ site.slug }}.tar.gz {
2020-05-05 09:08:24 +00:00
weekly
rotate 4
nocompress
dateext
dateformat _%Y-%m-%d
extension .tar.gz
missingok
}
become: yes
when: site_data_path is defined
2020-06-01 06:21:27 +00:00
- name: "MySQL Database backups"
2020-05-05 09:08:24 +00:00
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 {{ site.slug }} database"
2020-05-05 09:08:24 +00:00
special_time: weekly
user: "root" # need root for passwordless mysqldump
job: "mysqldump {{ site.mysql_database }} | gzip -c > {{ backups_path }}/{{ site.slug }}.sql.gz"
2020-05-05 09:08:24 +00:00
become: yes
- name: "Setup database backup rotation with logrotate"
blockinfile:
path: "/etc/logrotate.d/{{ site.slug }}"
2020-05-05 09:08:24 +00:00
marker: "# {mark} DATABASE BACKUP"
create: yes
block: |
{{ backups_path }}/{{ site.slug }}.sql.gz {
2020-05-05 09:08:24 +00:00
weekly
rotate 4
nocompress
dateext
dateformat _%Y-%m-%d
extension .sql.gz
missingok
}
become: yes
when: site.mysql_database is defined
2020-06-01 06:21:27 +00:00
- name: "PostgreSQL Database backups"
debug: msg="TODO PUTAIN BOSSE LÀ"
2020-06-01 06:21:27 +00:00
when: site.postgres_database is defined