From 37e93cced23e0ee726309e841b1dac19e9ccdac4 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 26 Dec 2018 11:02:22 +0100 Subject: o Working borg setup. --- ansible/roles/borg-server/tasks/borg-server.yml | 30 +++++++++++++++++ ansible/roles/borg-server/tasks/main.yml | 43 +++++++++++++------------ 2 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 ansible/roles/borg-server/tasks/borg-server.yml (limited to 'ansible/roles/borg-server/tasks') diff --git a/ansible/roles/borg-server/tasks/borg-server.yml b/ansible/roles/borg-server/tasks/borg-server.yml new file mode 100644 index 0000000..253aa4a --- /dev/null +++ b/ansible/roles/borg-server/tasks/borg-server.yml @@ -0,0 +1,30 @@ +- debug: var=groups[borg_server__clients_ansible_group] + +- become: yes + become_user: borg + vars: + clients: "{{ groups[borg_server__clients_ansible_group] }}" + block: + - name: mkdir repos + file: + path: "{{ borg_server__home }}/repos" + state: directory + mode: u=rwx,go= + + - name: mkdir repos/{{ item.key }} + with_items: "{{ clients }}" + command: borg init "{{ item }}" -e none + args: + creates: "{{ borg_server__home }}/repos/{{ item }}" + chdir: "{{ borg_server__home }}/repos" + + - name: authorized_keys + with_items: "{{ clients }}" + vars: + client: "{{hostvars[ansible_hostname]['borg_' + item]}}" + authorized_key: + user: borg + state: "{{ client.state }}" + key: "{{ lookup('file', item + '/etc/borg/id_ed25519.pub') }}" + path: "{{ borg_server__home }}/.ssh/authorized_keys" + key_options: "command=\"cd {{ borg_server__home }}/repos; borg serve --append-only --restrict-to-path {{ borg_server__home }}/repos/{{ item }}\",no-port-forwarding,no-X11-forwarding,no-pty,no-agent-forwarding,no-user-rc" diff --git a/ansible/roles/borg-server/tasks/main.yml b/ansible/roles/borg-server/tasks/main.yml index 9ef5635..c975803 100644 --- a/ansible/roles/borg-server/tasks/main.yml +++ b/ansible/roles/borg-server/tasks/main.yml @@ -1,23 +1,26 @@ -- name: authorized_keys - with_dict: "{{ borg_clients }}" - authorized_key: - user: borg - manage_dir: False - state: "{{ item.value.state }}" - key: "{{ borg_ssh_keys[item.key].public }}" - path: "{{ borg_basedir }}/.ssh/authorized_keys2" - key_options: "command=\"cd {{ borg_basedir }}/repos; borg serve --append-only --restrict-to-path {{ borg_basedir }}/repos/{{ item.key }}\",no-port-forwarding,no-X11-forwarding,no-pty,no-agent-forwarding,no-user-rc" +- name: packages + tags: borg-server + become: yes + apt: + name: "{{ items }}" + install_recommends: no + vars: + items: + - borgbackup -- name: mkdir repos - file: - path: "{{ borg_basedir }}/repos" - state: directory - mode: u=rwx,go= - owner: borg +- name: Create unix group + become: yes + group: + name: borg + system: yes + +- name: Create unix user + become: yes + user: + name: borg + system: yes group: borg + shell: "{{ borg_server__shell }}" + home: "{{ borg_server__home }}" -#- name: mkdir repos/{{ item.key }} -# with_dict: "{{ borg_clients }}" -# file: -# path: "{{ borg_basedir }}/repos" -# state: directory +- import_tasks: borg-server.yml -- cgit v1.2.3