Changeset - b668f8894d52
[Not reviewed]
0 3 3
Branko Majic (branko) - 8 years ago 2016-01-06 23:58:59
branko@majic.rs
MAR-44: Implemented backup support for the database role.
6 files changed with 43 insertions and 1 deletions:
0 comments (0 inline, 0 general)
docs/rolereference.rst
Show inline comments
 
@@ -1326,6 +1326,16 @@ The role implements the following:
 
  database. Username is set to be same as the name of database.
 

	
 

	
 
Backups
 
~~~~~~~
 

	
 
If the backup for this role has been enabled, the following paths are backed-up:
 

	
 
**/srv/backup/maraidb/{{ db_name }}.sql**
 
  Dump of the database. Database dump is created every day at 01:45 in the
 
  morning.
 

	
 

	
 
Parameters
 
~~~~~~~~~~
 

	
roles/database/defaults/main.yml
Show inline comments
 
new file 100644
 
---
 

	
 
enable_backup: False
 
\ No newline at end of file
roles/database/meta/main.yml
Show inline comments
 
---
 

	
 
allow_duplicates: yes
 
\ No newline at end of file
 
allow_duplicates: yes
 

	
 
dependencies:
 
  - role: backup_client
 
    when: enable_backup
 
\ No newline at end of file
roles/database/tasks/backup.yml
Show inline comments
 
new file 100644
 
---
 

	
 
- name: Create directory for storing MariaDB database dumps
 
  file: path="{{ item }}" state=directory
 
        owner=root group=root mode=700
 
  with_items:
 
    - "/srv"
 
    - "/srv/backup"
 
    - "/srv/backup/mariadb"
 

	
 
- name: Deploy include patterns to backup
 
  template: src="backup_patterns.j2" dest="/etc/duply/main/patterns/{{ db_name }}"
 
            owner="root" group="root" mode="700"
 
  notify:
 
    - Assemble Duply include patterns
 

	
 
- name: Create crontab entry for creating MariaDB database dumps every day at 01:45
 
  cron: name="mariadb_{{ db_name }}" cron_file="mariadb_{{ db_name }}" hour=1 minute=45
 
        job="/usr/bin/mysqldump \"{{ db_name }}\" > /srv/backup/mariadb/\"{{ db_name }}\".sql"
 
        state=present user=root
roles/database/tasks/main.yml
Show inline comments
 
@@ -6,3 +6,7 @@
 
- name: "Create database user {{ db_name }}"
 
  mysql_user: name="{{ db_name }}" password="{{ db_password }}"
 
              priv=*.*:ALL state=present
 

	
 
- name: Enable backup
 
  include: backup.yml
 
  when: enable_backup
 
\ No newline at end of file
roles/database/templates/backup_patterns.j2
Show inline comments
 
new file 100644
 
/srv/backup/mariadb/{{ db_name }}.sql
 
\ No newline at end of file
0 comments (0 inline, 0 general)