src.nth.io/

summaryrefslogtreecommitdiff
path: root/dendrite/aws-s3-backup
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2021-07-18 17:43:46 -0500
committerLuke Hoersten <[email protected]>2021-07-18 17:43:46 -0500
commit9bb76f57d55ca5a9e502a34e504a21904d4157a1 (patch)
tree903c0e279b0e7d4a546847bf0dcbf82ddca1409b /dendrite/aws-s3-backup
parent2749003ec0f863e700450da9ee55d58cc8f4b399 (diff)
Tons of updates.
Diffstat (limited to 'dendrite/aws-s3-backup')
-rw-r--r--dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json12
-rw-r--r--dendrite/aws-s3-backup/files/writefreely-s3-backup.sh13
-rw-r--r--dendrite/aws-s3-backup/handlers/main.yaml5
-rw-r--r--dendrite/aws-s3-backup/meta/main.yaml4
-rw-r--r--dendrite/aws-s3-backup/tasks/main.yaml26
-rw-r--r--dendrite/aws-s3-backup/templates/[email protected]9
6 files changed, 69 insertions, 0 deletions
diff --git a/dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json b/dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json
new file mode 100644
index 0000000..44036c0
--- /dev/null
+++ b/dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json
@@ -0,0 +1,12 @@
+{
+ "Rules": [
+ {
+ "ID": "expiration",
+ "Filter": {},
+ "Status": "Enabled",
+ "NoncurrentVersionExpiration": {
+ "NoncurrentDays": 30
+ }
+ }
+ ]
+}
diff --git a/dendrite/aws-s3-backup/files/writefreely-s3-backup.sh b/dendrite/aws-s3-backup/files/writefreely-s3-backup.sh
new file mode 100644
index 0000000..402d6fe
--- /dev/null
+++ b/dendrite/aws-s3-backup/files/writefreely-s3-backup.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+BUCKET=$1
+BACKUP_DIR=$2
+BACKUP_TAR="/tmp/$BUCKET.tgz"
+
+tar -zc -f $BACKUP_TAR $BACKUP_DIR
+aws s3 mb "s3://$BUCKET/"
+aws s3api put-bucket-versioning --bucket "$BUCKET" --versioning-configuration Status=Enabled
+aws s3api put-bucket-lifecycle-configuration --bucket "$BUCKET" --lifecycle-configuration "file:///usr/local/share/writefreely-s3-backup-lifecycle.json"
+aws s3 cp $BACKUP_TAR "s3://$BUCKET/"
+
+rm $BACKUP_TAR
diff --git a/dendrite/aws-s3-backup/handlers/main.yaml b/dendrite/aws-s3-backup/handlers/main.yaml
new file mode 100644
index 0000000..0e39754
--- /dev/null
+++ b/dendrite/aws-s3-backup/handlers/main.yaml
@@ -0,0 +1,5 @@
+---
+
+- name: reload s3 backup service
+ systemd: name="writefreely-s3-backup@{{writefreely_s3_backup_bucket}}.service" enabled="yes" daemon_reload="yes"
+ become: yes
diff --git a/dendrite/aws-s3-backup/meta/main.yaml b/dendrite/aws-s3-backup/meta/main.yaml
new file mode 100644
index 0000000..f9c6f63
--- /dev/null
+++ b/dendrite/aws-s3-backup/meta/main.yaml
@@ -0,0 +1,4 @@
+---
+
+dependencies:
+ - aws-s3-backup
diff --git a/dendrite/aws-s3-backup/tasks/main.yaml b/dendrite/aws-s3-backup/tasks/main.yaml
new file mode 100644
index 0000000..e9b005e
--- /dev/null
+++ b/dendrite/aws-s3-backup/tasks/main.yaml
@@ -0,0 +1,26 @@
+---
+
+- name: create writefreely s3 backup shell script
+ become: yes
+ copy:
+ src: "writefreely-s3-backup.sh"
+ dest: "/usr/local/bin/writefreely-s3-backup.sh"
+ mode: "0755"
+
+- name: create s3 backup lifesycle json file
+ become: yes
+ copy:
+ src: "writefreely-s3-backup-lifecycle.json"
+ dest: "/usr/local/share/writefreely-s3-backup-lifecycle.json"
+ mode: "0755"
+
+- name: configure writefreely s3 backup systemd service
+ become: yes
+ template:
+ dest: "/lib/systemd/system/writefreely-s3-backup@{{writefreely_s3_backup_bucket}}.service"
+ notify: reload s3 backup service
+
+- name: ensure writefreely s3 backup service is started
+ become: yes
+ systemd: name="writefreely-s3-backup@{{writefreely_s3_backup_bucket}}.service" enabled="yes"
diff --git a/dendrite/aws-s3-backup/templates/[email protected] b/dendrite/aws-s3-backup/templates/[email protected]
new file mode 100644
index 0000000..2f9d272
--- /dev/null
+++ b/dendrite/aws-s3-backup/templates/[email protected]
@@ -0,0 +1,9 @@
+[Unit]
+Description=Writefreely s3 backup for "%I"
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/writefreely-s3-backup.sh %i "{{writefreely_s3_backup_dir}}"
+
+[Install]
+WantedBy=aws-s3-backup.target