aboutsummaryrefslogtreecommitdiff
path: root/provision.env.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'provision.env.yaml')
-rw-r--r--provision.env.yaml48
1 files changed, 48 insertions, 0 deletions
diff --git a/provision.env.yaml b/provision.env.yaml
new file mode 100644
index 0000000..07fd3f0
--- /dev/null
+++ b/provision.env.yaml
@@ -0,0 +1,48 @@
+---
+- hosts: all
+ any_errors_fatal: true
+ gather_facts: no
+ pre_tasks:
+ - name: Install Python 2 for Ansible fact gathering
+ raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
+
+- hosts: all
+ any_errors_fatal: true
+ tasks:
+ - name: Update Ubuntu server
+ apt:
+ update_cache: yes
+ upgrade: dist
+ - name: Install apt packages
+ apt:
+ name: [ 'docker-compose', 'borgbackup' ]
+ state: latest
+ - name: Create /home/vps/ base directory
+ file:
+ path: /home/vps/
+ state: directory
+ - name: Create symlink to attached volume
+ file:
+ src: /mnt/${VPS_VOLUME_NAME}
+ dest: /home/vps/volumes
+ state: link
+ - name: Copy local interpolated files to remote
+ copy: src={{ item.src }} dest={{ item.dest }} mode={{ item.mode }}
+ with_items:
+ - { src: './generated/restore-backup.sh', dest: '/home/vps/restore-backup.sh', mode: '500' }
+ - { src: './secrets/borg/borg-remote.pub', dest: '/root/.ssh/id_rsa.pub', mode: '400' }
+ - { src: './secrets/borg/borg-remote', dest: '/root/.ssh/id_rsa', mode: '400' }
+ - { src: './secrets/borg/known-hosts.txt', dest: '/root/.ssh/known_hosts', mode: '400' }
+ - { src: './scripts/box/bash-profile.sh', dest: '/root/.bash_profile', mode: '400' }
+ - { src: './generated/docker-compose.yaml', dest: '/home/vps/docker-compose.yaml', mode: '400' }
+ - name: Restore borg backup when we have a fresh volume
+ shell: /home/vps/restore-backup.sh
+ when: lookup('env', 'DESTROY_VOLUME') == "1"
+ - name: Create the required Docker network
+ docker_network:
+ name: nginx-proxy
+ - name: Start docker-compose
+ docker_compose:
+ project_src: /home/vps/
+ pull: yes
+ state: present