From d555662b0dd8cb47f4d534fdb9dc833cf19ea690 Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Sun, 29 Mar 2026 14:07:46 +0000 Subject: [PATCH] Add backup role to deploy hdd-backup.sh and cron to london-b Captures the existing /root/scripts/backup.sh and its 22:00 daily cron job as an Ansible role so it's managed via pez-infra deploys. Refs: PESO-95 --- ansible/deploy.yml | 3 ++- ansible/roles/backup/tasks/main.yml | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 ansible/roles/backup/tasks/main.yml diff --git a/ansible/deploy.yml b/ansible/deploy.yml index 55e787a..e4d95e9 100644 --- a/ansible/deploy.yml +++ b/ansible/deploy.yml @@ -53,12 +53,13 @@ roles: - role: caddy -# london-b: Docker services (storage, apps) +# london-b: Docker services (storage, apps) + backups - name: "Stage 4b: Docker services (london-b)" hosts: london-b tags: [services, london-b] roles: - role: docker_services + - role: backup # nuremberg-a: Mail (poste.io via Docker) - name: "Stage 4c: Mail (nuremberg-a)" diff --git a/ansible/roles/backup/tasks/main.yml b/ansible/roles/backup/tasks/main.yml new file mode 100644 index 0000000..6c029b4 --- /dev/null +++ b/ansible/roles/backup/tasks/main.yml @@ -0,0 +1,22 @@ +--- +# Deploy backup script and cron job for rclone-to-B2 backups. + +- name: Ensure scripts directory exists + ansible.builtin.file: + path: /root/scripts + state: directory + mode: '0755' + +- name: Deploy backup script + ansible.builtin.copy: + src: "{{ playbook_dir }}/scripts/hdd-backup.sh" + dest: /root/scripts/backup.sh + mode: '0755' + +- name: Configure backup cron job + ansible.builtin.cron: + name: "HDD backup to B2" + minute: "0" + hour: "22" + job: "/root/scripts/backup.sh" + user: root