From 6e49d2b6c76bdc11c42fb292f7bdafc95e492d51 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 11 Feb 2021 19:10:38 +0100 Subject: Revitalized the borg role --- tasks/client.yml | 35 ++++++++++------------------------- tasks/client_Alpine.yml | 6 ++++++ tasks/client_Gentoo.yml | 7 +++++++ tasks/client_OpenBSD.yml | 7 +++++++ tasks/client_RedHat.yml | 7 +++++++ tasks/client_Ubuntu.yml | 7 +++++++ tasks/server.yml | 1 + 7 files changed, 45 insertions(+), 25 deletions(-) create mode 100644 tasks/client_Alpine.yml create mode 100644 tasks/client_Gentoo.yml create mode 100644 tasks/client_OpenBSD.yml create mode 100644 tasks/client_RedHat.yml create mode 100644 tasks/client_Ubuntu.yml (limited to 'tasks') diff --git a/tasks/client.yml b/tasks/client.yml index 7eedbe7..0ae0142 100644 --- a/tasks/client.yml +++ b/tasks/client.yml @@ -27,10 +27,7 @@ delegate_to: "{{ borg_server }}" - name: create borg client repo on server - command: "borg init --encryption=none /srv/borg/repos/{{ ansible_hostname }}" - become: yes - become_method: su - become_user: borg + shell: "echo \"borg init --encryption=none /srv/borg/repos/{{ ansible_hostname }}\" | su -l borg" delegate_to: "{{ borg_server }}" args: creates: "/srv/borg/repos/{{ ansible_hostname }}/config" @@ -56,10 +53,15 @@ - name: make the repo known to the client copy: - dest: "/root/.config/borg/security/{{ hostvars[borg_server]['ansible_local']['borg']['repos'][ansible_hostname] }}/key-type" - content: "2" + dest: "/root/.config/borg/security/{{ hostvars[borg_server]['ansible_local']['borg']['repos'][ansible_hostname] }}/{{ item.dest }}" + content: "{{ item.content }}" owner: root mode: 0600 + loop: + - { dest: key-type, content: "2" } + - { dest: location, content: "ssh://borg@{{ borg_server }}/srv/borg/repos/{{ ansible_hostname }}" } + - { dest: manifest-timestamp, content: "{{ ansible_date_time['iso8601_micro'] }}" } + changed_when: false - name: deploy borg backup script template: @@ -68,23 +70,6 @@ owner: root mode: 0500 -- name: activate borg cron on alpine - lineinfile: - line: '0 23 * * * /usr/local/bin/adyxax_backup.sh' - path: /etc/crontabs/root - when: ansible_os_family == 'Alpine' - -- name: activate borg cron on gentoo or redhat - file: - state: link - src: /usr/local/bin/adyxax_backup.sh - dest: /etc/cron.daily/backup - when: ansible_os_family == 'Gentoo' or ansible_os_family == 'RedHat' - -- name: activate borg cron on openbsd - lineinfile: - line: '0 23 * * * /usr/local/bin/adyxax_backup.sh' - path: /var/cron/tabs/root - when: ansible_os_family == 'OpenBSD' - notify: restart openbsd cron +- name: Run OS specific tasks + include_tasks: "roles/borg/tasks/client_{{ ansible_distribution }}.yml" ... diff --git a/tasks/client_Alpine.yml b/tasks/client_Alpine.yml new file mode 100644 index 0000000..3334be5 --- /dev/null +++ b/tasks/client_Alpine.yml @@ -0,0 +1,6 @@ +--- +- name: activate borg cron + lineinfile: + line: '0 23 * * * /usr/local/bin/adyxax_backup.sh' + path: /etc/crontabs/root +... diff --git a/tasks/client_Gentoo.yml b/tasks/client_Gentoo.yml new file mode 100644 index 0000000..a6c6317 --- /dev/null +++ b/tasks/client_Gentoo.yml @@ -0,0 +1,7 @@ +--- +- name: activate borg cron + file: + state: link + src: /usr/local/bin/adyxax_backup.sh + dest: /etc/cron.daily/backup +... diff --git a/tasks/client_OpenBSD.yml b/tasks/client_OpenBSD.yml new file mode 100644 index 0000000..a566949 --- /dev/null +++ b/tasks/client_OpenBSD.yml @@ -0,0 +1,7 @@ +--- +- name: activate borg cron + lineinfile: + line: '0 23 * * * /usr/local/bin/adyxax_backup.sh' + path: /var/cron/tabs/root + notify: restart openbsd cron +... diff --git a/tasks/client_RedHat.yml b/tasks/client_RedHat.yml new file mode 100644 index 0000000..a6c6317 --- /dev/null +++ b/tasks/client_RedHat.yml @@ -0,0 +1,7 @@ +--- +- name: activate borg cron + file: + state: link + src: /usr/local/bin/adyxax_backup.sh + dest: /etc/cron.daily/backup +... diff --git a/tasks/client_Ubuntu.yml b/tasks/client_Ubuntu.yml new file mode 100644 index 0000000..a6c6317 --- /dev/null +++ b/tasks/client_Ubuntu.yml @@ -0,0 +1,7 @@ +--- +- name: activate borg cron + file: + state: link + src: /usr/local/bin/adyxax_backup.sh + dest: /etc/cron.daily/backup +... diff --git a/tasks/server.yml b/tasks/server.yml index bd40dab..c166dcf 100644 --- a/tasks/server.yml +++ b/tasks/server.yml @@ -7,6 +7,7 @@ - name: Create borg user on server user: name: borg + group: borg shell: /bin/sh home: /srv/borg createhome: yes -- cgit v1.2.3