From 1bdfe4cf538a5d3d19c5daab7f85299b2ad20f2d Mon Sep 17 00:00:00 2001 From: David Mehren <git@herrmehren.de> Date: Tue, 1 Mar 2022 10:05:55 +0100 Subject: [PATCH] Make more target details configurable --- defaults/main.yml | 3 +++ tasks/main.yml | 4 ++-- tasks/onserver.yml | 16 ++++++++-------- templates/config.yaml.j2 | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 78f904b..6a767cf 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,4 +1,6 @@ --- +borgbackup_target_group: borgbackup +borgbackup_target_user: borgbackup borgbackup_compression: "zstd" borgbackup_exclude_dirs: - sh:/home/*/.gvfs @@ -30,6 +32,7 @@ borgbackup_exclude_dirs: - sh:/home/*/**/bower_components borgbackup_pool: "/mnt/borgpool" +borgbackup_repo_path: "backup" borgbackup_keep_within: 7d borgbackup_keep_daily: 21 borgbackup_keep_weekly: 8 diff --git a/tasks/main.yml b/tasks/main.yml index d9f40f7..7405e0e 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -17,7 +17,7 @@ - name: Check if Repo already exists stat: - path: "{{ borgbackup_pool }}/{{ ansible_hostname }}/backup" + path: "{{ borgbackup_pool }}/{{ ansible_hostname }}/{{ borgbackup_repo_path }}" register: repo delegate_to: "{{ borgbackup_target_host }}" @@ -37,7 +37,7 @@ key: "{{ borgbackup_target_ip }} ssh-ed25519 {{ hostvars[borgbackup_target_host]['ansible_ssh_host_key_ed25519_public'] }}" - name: Create Borg Repo - command: "borg init -e repokey borgbackup@{{ borgbackup_target_ip }}:backup" + command: "borg init -e repokey {{ borgbackup_target_user }}@{{ borgbackup_target_ip }}:{{ borgbackup_repo_path }}" environment: BORG_PASSPHRASE: "{{ borgbackup_key }}" when: not repo.stat.exists diff --git a/tasks/onserver.yml b/tasks/onserver.yml index 9343f1d..4f17d44 100644 --- a/tasks/onserver.yml +++ b/tasks/onserver.yml @@ -1,12 +1,12 @@ --- - name: Create Group group: - name: "borgbackup" + name: "{{ borgbackup_target_group }}" ignore_errors: true register: create_group - name: Create Group Fallback - command: addgroup borgbackup + command: "addgroup {{ borgbackup_target_group }}" register: create_group_fallback failed_when: - create_group_fallback.rc != 0 @@ -16,13 +16,13 @@ - name: Create User user: - name: "borgbackup" - group: "borgbackup" + name: "{{ borgbackup_target_user }}" + group: "{{ borgbackup_target_group }}" ignore_errors: true register: create_user - name: Create User Fallback - command: adduser -D -G borgbackup borgbackup + command: "adduser -D -G {{ borgbackup_target_group }} {{ borgbackup_target_user }}" register: create_user_fallback failed_when: - create_user_fallback.rc != 0 @@ -33,8 +33,8 @@ - name: Set permissions file: path: "{{ item }}" - owner: "borgbackup" - group: "borgbackup" + owner: "{{ borgbackup_target_user }}" + group: "{{ borgbackup_target_group }}" mode: 0700 state: directory with_items: @@ -43,7 +43,7 @@ - name: Add public key authorized_key: - user: "borgbackup" + user: "{{ borgbackup_target_user }}" key: "{{ borgbackup_source_key }}" # yamllint disable-line rule:line-length key_options: "command=\"cd {{ hostvars[borgbackup_target_host]['borgbackup_pool'] | default(borgbackup_pool) }}/{{ borgbackup_source_host }};borg serve --restrict-to-path {{ hostvars[borgbackup_target_host]['borgbackup_pool'] | default(borgbackup_pool) }}/{{ borgbackup_source_host }}\",restrict" diff --git a/templates/config.yaml.j2 b/templates/config.yaml.j2 index 6e63e12..8236755 100644 --- a/templates/config.yaml.j2 +++ b/templates/config.yaml.j2 @@ -7,7 +7,7 @@ location: # Paths to local or remote repositories. repositories: - - borgbackup@{{ borgbackup_target_ip }}:backup + - "{{ borgbackup_target_user }}@{{ borgbackup_target_ip }}:{{ borgbackup_repo_path }}" exclude_patterns: {% for item in borgbackup_exclude_dirs %} -- GitLab