src.nth.io/

summaryrefslogtreecommitdiff
path: root/aws-s3-backup
diff options
context:
space:
mode:
Diffstat (limited to 'aws-s3-backup')
-rw-r--r--aws-s3-backup/defaults/main.yaml6
-rw-r--r--aws-s3-backup/files/aws-s3-backup.target3
-rw-r--r--aws-s3-backup/files/aws-s3-backup.timer10
-rw-r--r--aws-s3-backup/handlers/main.yaml9
-rw-r--r--aws-s3-backup/tasks/main.yaml38
-rw-r--r--aws-s3-backup/templates/aws-config.j25
-rw-r--r--aws-s3-backup/templates/aws-credentials.j25
7 files changed, 76 insertions, 0 deletions
diff --git a/aws-s3-backup/defaults/main.yaml b/aws-s3-backup/defaults/main.yaml
new file mode 100644
index 0000000..d17817e
--- /dev/null
+++ b/aws-s3-backup/defaults/main.yaml
@@ -0,0 +1,6 @@
+---
+
+aws_s3_backup_region: "us-east-1"
+aws_s3_backup_pip_packages:
+ - "awscli"
+ - "boto3"
diff --git a/aws-s3-backup/files/aws-s3-backup.target b/aws-s3-backup/files/aws-s3-backup.target
new file mode 100644
index 0000000..5338057
--- /dev/null
+++ b/aws-s3-backup/files/aws-s3-backup.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=AWS S3 backup target
+StopWhenUnneeded=yes
diff --git a/aws-s3-backup/files/aws-s3-backup.timer b/aws-s3-backup/files/aws-s3-backup.timer
new file mode 100644
index 0000000..6d7b42e
--- /dev/null
+++ b/aws-s3-backup/files/aws-s3-backup.timer
@@ -0,0 +1,10 @@
+[Unit]
+Description=Daily AWS S3 backup
+
+[Timer]
+OnCalendar=daily
+Persistent=true
+Unit=aws-s3-backup.target
+
+[Install]
+WantedBy=timers.target
diff --git a/aws-s3-backup/handlers/main.yaml b/aws-s3-backup/handlers/main.yaml
new file mode 100644
index 0000000..ce1b90a
--- /dev/null
+++ b/aws-s3-backup/handlers/main.yaml
@@ -0,0 +1,9 @@
+---
+
+- name: reload timer
+ systemd: name="aws-s3-backup.timer" enabled="yes" daemon_reload="yes"
+ become: yes
+
+- name: reload target
+ systemd: name="aws-s3-backup.target" enabled="yes" daemon_reload="yes"
+ become: yes
diff --git a/aws-s3-backup/tasks/main.yaml b/aws-s3-backup/tasks/main.yaml
new file mode 100644
index 0000000..cc95210
--- /dev/null
+++ b/aws-s3-backup/tasks/main.yaml
@@ -0,0 +1,38 @@
+---
+
+- name: apt install pip
+ become: yes
+ apt: name="python-pip"
+
+- name: pip install aws cli packages
+ become: yes
+ pip: name="{{aws_s3_backup_pip_packages}}"
+
+- name: create aws config dir for root
+ become: yes
+ file: path="/root/.aws/" state="directory" mode="0755"
+
+- name: configure aws credentials for root
+ become: yes
+ template: src="aws-{{item}}.j2" dest="/root/.aws/{{item}}" mode="0600"
+ with_items:
+ - "credentials"
+ - "config"
+
+- name: create systemd target
+ become: yes
+ copy:
+ src: "aws-s3-backup.target"
+ dest: "/lib/systemd/system/aws-s3-backup.target"
+ notify: reload target
+
+- name: create systemd timer
+ become: yes
+ copy:
+ src: "aws-s3-backup.timer"
+ dest: "/lib/systemd/system/aws-s3-backup.timer"
+ notify: reload timer
+
+- name: ensure timer is started
+ become: yes
+ systemd: name="aws-s3-backup.timer" enabled="yes" state="started"
diff --git a/aws-s3-backup/templates/aws-config.j2 b/aws-s3-backup/templates/aws-config.j2
new file mode 100644
index 0000000..5e8d330
--- /dev/null
+++ b/aws-s3-backup/templates/aws-config.j2
@@ -0,0 +1,5 @@
+# {{ansible_managed}}
+
+[default]
+region={{aws_s3_backup_region}}
+output=json
diff --git a/aws-s3-backup/templates/aws-credentials.j2 b/aws-s3-backup/templates/aws-credentials.j2
new file mode 100644
index 0000000..a959415
--- /dev/null
+++ b/aws-s3-backup/templates/aws-credentials.j2
@@ -0,0 +1,5 @@
+# {{ansible_managed}}
+
+[default]
+aws_access_key_id={{aws_access_key}}
+aws_secret_access_key={{aws_secret_key}}