diff options
Diffstat (limited to 'git/aws-s3-backup')
| -rw-r--r-- | git/aws-s3-backup/files/git-s3-backup-lifecycle.json | 12 | ||||
| -rw-r--r-- | git/aws-s3-backup/files/git-s3-backup.sh | 14 | ||||
| -rw-r--r-- | git/aws-s3-backup/handlers/main.yaml | 5 | ||||
| -rw-r--r-- | git/aws-s3-backup/meta/main.yaml | 4 | ||||
| -rw-r--r-- | git/aws-s3-backup/tasks/main.yaml | 26 | ||||
| -rw-r--r-- | git/aws-s3-backup/templates/[email protected] | 9 |
6 files changed, 70 insertions, 0 deletions
diff --git a/git/aws-s3-backup/files/git-s3-backup-lifecycle.json b/git/aws-s3-backup/files/git-s3-backup-lifecycle.json new file mode 100644 index 0000000..44036c0 --- /dev/null +++ b/git/aws-s3-backup/files/git-s3-backup-lifecycle.json @@ -0,0 +1,12 @@ +{ + "Rules": [ + { + "ID": "expiration", + "Filter": {}, + "Status": "Enabled", + "NoncurrentVersionExpiration": { + "NoncurrentDays": 30 + } + } + ] +} diff --git a/git/aws-s3-backup/files/git-s3-backup.sh b/git/aws-s3-backup/files/git-s3-backup.sh new file mode 100644 index 0000000..c6dbcf1 --- /dev/null +++ b/git/aws-s3-backup/files/git-s3-backup.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +BUCKET=$1 +BACKUP_DIR=$2 +DATE=$(date +%Y-%m-%d) +BACKUP_TAR=$(mktemp /tmp/git-s3-backup.XXXXXX.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/git-s3-backup-lifecycle.json" +aws s3 cp "$BACKUP_TAR" "s3://$BUCKET/git-s3-backup-$DATE.tgz" + +rm "$BACKUP_TAR" diff --git a/git/aws-s3-backup/handlers/main.yaml b/git/aws-s3-backup/handlers/main.yaml new file mode 100644 index 0000000..e61f79b --- /dev/null +++ b/git/aws-s3-backup/handlers/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: reload git s3 backup service + systemd: name="git-s3-backup@{{git_s3_backup_bucket}}.service" enabled="yes" daemon_reload="yes" + become: yes diff --git a/git/aws-s3-backup/meta/main.yaml b/git/aws-s3-backup/meta/main.yaml new file mode 100644 index 0000000..f9c6f63 --- /dev/null +++ b/git/aws-s3-backup/meta/main.yaml @@ -0,0 +1,4 @@ +--- + +dependencies: + - aws-s3-backup diff --git a/git/aws-s3-backup/tasks/main.yaml b/git/aws-s3-backup/tasks/main.yaml new file mode 100644 index 0000000..85c3d17 --- /dev/null +++ b/git/aws-s3-backup/tasks/main.yaml @@ -0,0 +1,26 @@ +--- + +- name: create git s3 backup shell script + become: yes + copy: + src: "git-s3-backup.sh" + dest: "/usr/local/bin/git-s3-backup.sh" + mode: "0755" + +- name: create s3 backup lifecycle json file + become: yes + copy: + src: "git-s3-backup-lifecycle.json" + dest: "/usr/local/share/git-s3-backup-lifecycle.json" + mode: "0644" + +- name: configure git s3 backup systemd service + become: yes + template: + src: "[email protected]" + dest: "/lib/systemd/system/git-s3-backup@{{git_s3_backup_bucket}}.service" + notify: reload git s3 backup service + +- name: ensure git s3 backup service is started + become: yes + systemd: name="git-s3-backup@{{git_s3_backup_bucket}}.service" enabled="yes" state="started" diff --git a/git/aws-s3-backup/templates/[email protected] b/git/aws-s3-backup/templates/[email protected] new file mode 100644 index 0000000..0d94943 --- /dev/null +++ b/git/aws-s3-backup/templates/[email protected] @@ -0,0 +1,9 @@ +[Unit] +Description=Git s3 backup for "%I" + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/git-s3-backup.sh %i "{{git_s3_backup_dir}}" + +[Install] +WantedBy=aws-s3-backup.target |
