EnvironmentFile=/etc/ansible/facts.d/env.fact
ExecStartPre=/usr/bin/git \
--work-tree=/tmp \
- --git-dir=${git_home_dir}/turnup.git \
- checkout main --force sources.yaml backup.yaml
+ --git-dir=${git_home_dir}/config.git \
+ checkout main --force sources.yaml
+ExecStartPre=/usr/bin/git \
+ --work-tree=/tmp \
+ --git-dir=${git_home_dir}/cron.git \
+ checkout main --force backup.yaml
ExecStart=/usr/bin/ansible-playbook /tmp/backup.yaml \
--connection=local \
--extra-vars token=${gdrive_auth_token} \
--- /dev/null
+# Copyright (c) 2023 Jakub Czajka <jakub@ekhem.eu.org>
+# License: GPL-3.0 or later.
+
+- hosts: servers
+ vars:
+ auth_token: "{{ lookup('file', '{{ token }}') | to_nice_json }}"
+ encryption_key: "{{ lookup('file', '{{ key }}') }}"
+ tasks:
+ - set_fact:
+ inputs: "{{ lookup('file', '{{ sources }}') | from_yaml }}"
+ - name: Install gdrive_knife
+ pip:
+ name: gdrive_knife
+ extra_args: --break-system-packages
+ state: latest
+ become: true
+ - name: Clear /tmp
+ shell: rm --recursive --force /tmp/*
+ become: true
+ - name: Dump database to /tmp/database
+ command: pg_dumpall --user=postgres --clean --file=/tmp/database
+ - name: Upload file
+ command: python3 -m gdrive_knife upload --token {{ auth_token }} \
+ --key {{ encryption_key }} {{ item.dest }}/{{ item.name }} \
+ {{ item.name }}
+ become: true
+ with_items: "{{ inputs }}"