main.yml (1426B)
1 --- 2 - name: Install Borg package 3 ansible.builtin.apt: 4 name: 5 - borgbackup 6 state: latest 7 when: ansible_os_family == 'Debian' 8 9 - name: Setup group for borg backups from spec 10 ansible.builtin.group: 11 name: borg 12 state: present 13 system: false 14 15 - name: Setup user for borg backups from spec 16 ansible.builtin.user: 17 name: borg 18 group: borg 19 password: ! 20 system: false 21 create_home: true 22 state: present 23 24 - name: Ensure /home/borg/.ssh/ directory exists 25 file: 26 path: "/home/borg/.ssh/" 27 state: directory 28 owner: borg 29 group: borg 30 mode: "0755" 31 32 - name: Place SSH public key for access by pixel 33 ansible.builtin.template: 34 src: files/home/borg/.ssh/authorized_keys 35 dest: /home/borg/.ssh/authorized_keys 36 owner: borg 37 group: borg 38 mode: "0644" 39 40 - name: Initialize borg repository 41 ansible.builtin.command: 42 cmd: borg init --encryption=repokey pixel-backup 43 chdir: /home/borg 44 environment: 45 BORG_PASSPHRASE: "{{ PIXEL_BORG_KEY }}" 46 become: true 47 become_user: borg 48 49 - name: Export borg repository key 50 ansible.builtin.shell: 51 cmd: borg key export pixel-backup/ > borg-repo.key 52 chdir: /home/borg 53 creates: /home/borg/borg-repo.key 54 environment: 55 BORG_PASSPHRASE: "{{ PIXEL_BORG_KEY }}" 56 become: true 57 become_user: borg 58 59 - name: Export borg-repo.key to caller 60 fetch: 61 src: /home/borg/borg-repo.key 62 dest: ../borg-repokey