From c2e93fd7beeaf2d60fe5a2e8dc4033b74ec2ab0d Mon Sep 17 00:00:00 2001
From: nd <git@notandy.de>
Date: Sat, 19 Dec 2020 22:32:18 +0100
Subject: [PATCH] added backups

---
 defaults/main.yml |  3 +++
 tasks/backup.yml  | 21 +++++++++++++++++++++
 tasks/main.yml    |  4 ++++
 3 files changed, 28 insertions(+)
 create mode 100644 tasks/backup.yml

diff --git a/defaults/main.yml b/defaults/main.yml
index 15b357e..fa84e21 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,2 +1,5 @@
 mongodb:
   version: "4.2"
+  backup:
+    enable: true
+    keep_days: 2
diff --git a/tasks/backup.yml b/tasks/backup.yml
new file mode 100644
index 0000000..fa405ab
--- /dev/null
+++ b/tasks/backup.yml
@@ -0,0 +1,21 @@
+- name: add mongodb backup folder
+  file:
+    path: /opt/mongodbbackup/
+    state: directory
+    owner: root
+    group: root
+    mode: '750'
+
+- name: add backup cronjob for easier backup/restore
+  cron:
+    name: mongodb backup
+    job: '/usr/bin/mongodump --gzip --archive=/opt/mongodbbackup/$(date "+\%Y\%m\%d-\%H\%M.dump.gz")'
+    user: root
+    hour: "*/4"
+    minute: 45
+
+- name: add backup cleanup cronjob
+  cron:
+    name: mongodb backup cleanup
+    job: 'find /opt/mongodbbackup/* -mtime +{{ mongodb.backup.keep_days }} -type f -exec rm {} \;'
+    special_time: daily
diff --git a/tasks/main.yml b/tasks/main.yml
index 97844b6..1b0e2b0 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -12,3 +12,7 @@
     name: mongod
     daemon_reload: yes
     enabled: yes
+
+- include_tasks: backup.yml
+  when:
+  - mongodb.backup.enable
-- 
GitLab