mongodb: Add database backups
This commit is contained in:
parent
195d9c3b03
commit
e233860b7b
3 changed files with 49 additions and 0 deletions
4
roles/mongodb/meta/main.yml
Normal file
4
roles/mongodb/meta/main.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- {role: backup_base}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: installed
|
state: installed
|
||||||
with_items:
|
with_items:
|
||||||
|
- mongodb-database-tools
|
||||||
- mongodb-mongosh
|
- mongodb-mongosh
|
||||||
- mongodb-org-server
|
- mongodb-org-server
|
||||||
|
|
||||||
|
@ -127,6 +128,22 @@
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
|
- name: Copy backup script
|
||||||
|
ansible.builtin.template:
|
||||||
|
dest: /usr/local/sbin/mongodb-backup
|
||||||
|
src: mongodb-backup.sh.j2
|
||||||
|
mode: "0700"
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
|
||||||
|
- name: Create backup cron job
|
||||||
|
ansible.builtin.cron:
|
||||||
|
name: mongodb-backup
|
||||||
|
job: /usr/local/sbin/mongodb-backup
|
||||||
|
hour: "0"
|
||||||
|
minute: "20"
|
||||||
|
user: root
|
||||||
|
|
||||||
- name: Create mongo alias cmd for root
|
- name: Create mongo alias cmd for root
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: /root/.bashrc
|
path: /root/.bashrc
|
||||||
|
|
28
roles/mongodb/templates/mongodb-backup.sh.j2
Executable file
28
roles/mongodb/templates/mongodb-backup.sh.j2
Executable file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
umask 027
|
||||||
|
|
||||||
|
DESTDIR="/srv/backup"
|
||||||
|
DATE="$(date +%Y-%m-%d)"
|
||||||
|
|
||||||
|
cd "$DESTDIR"
|
||||||
|
find . -xdev -mindepth 2 -maxdepth 2 -type f -mtime +30 \
|
||||||
|
-execdir rm -f -- {} \;
|
||||||
|
find . -xdev -depth -mindepth 1 -maxdepth 1 -type d -empty \
|
||||||
|
-execdir rmdir -- {} \;
|
||||||
|
|
||||||
|
mkdir -m 2750 "$DATE"
|
||||||
|
chgrp backup "$DATE"
|
||||||
|
|
||||||
|
mongodump \
|
||||||
|
--sslPEMKeyFile=/etc/pki/tls/private/mongodb.pem \
|
||||||
|
--sslCAFile=/etc/pki/tls/certs/ca.crt \
|
||||||
|
--ssl \
|
||||||
|
--username=backup \
|
||||||
|
--password="{{ mongodb_backup_password }}" \
|
||||||
|
--gzip \
|
||||||
|
--out="${DATE}" \
|
||||||
|
--quiet \
|
||||||
|
--uri="mongodb://$(hostname -f)/"
|
Loading…
Add table
Reference in a new issue