1
0
Fork 0
ynh-lydra-ansible-yunohost/roles/ynh_backup/tasks/borgbackup.yml
Arthur BOUDREAULT c10baec86f fix(ynh_backup): fix borgmatic version
Some arguments in borgmatic cli don't work anymore. They have been replaced in the latest commits of the Ansible role yet no new release have been published yet. Therefore, we are going to fix the borgmatic version to an older which works with Ansible role 0.9.3. https://github.com/borgbase/ansible-role-borgbackup
2022-12-15 09:37:32 +00:00

121 lines
3.9 KiB
YAML

---
#-----------------------------------------------------------------------------#
# ansible-yunohost allows to deploy Yunohost using Ansible #
# Copyright 2021-present Lydra https://www.lydra.fr/ #
# #
# this program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# this program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
#-----------------------------------------------------------------------------#
- name: Download BorgBackup role on localhost
ansible.builtin.command: ansible-galaxy install m3nu.ansible_role_borgbackup,"{{ m3nu_ansible_role_borgbackup_version }}" -p "{{ _ansible_role_directory }}"
delegate_to: localhost
become: False
tags:
- backup
- borg
- name: Gather facts for BorgBackup role
ansible.builtin.setup:
tags:
- borg
- backup
- name: Run BorgBackup role
ansible.builtin.import_role:
name: m3nu.ansible_role_borgbackup
tags:
- backup
- borg
- name: Install specific version of Borgmatic
ansible.builtin.pip:
name: "borgmatic"
version: "{{ borgmatic_version }}"
virtualenv: /opt/borgmatic
tags:
- backup
- borg
- name: Create backup folder for BorgBackup repository
ansible.builtin.file:
path: "{{ borg_repository }}"
state: directory
mode: '0750'
tags:
- backup
- borg
- name: Configure host for Borg Remote repository
tags:
- backup
- borg
block:
- name: deploy ssh public key for BorgBackup
ansible.builtin.copy:
src: "{{ borg_ssh_keys_src }}.pub"
dest: "{{ borg_ssh_keys_dest }}.pub"
owner: "root"
group: "root"
mode: 0600
- name: deploy ssh private key for BorgBackup
ansible.builtin.copy:
src: "{{ borg_ssh_keys_src }}.vault"
dest: "{{ borg_ssh_keys_dest }}"
owner: "root"
group: "root"
mode: 0600
when: ynh_borg_backup_remote_repo
- name: change SSH command in "/etc/borgmatic/{{ borgmatic_config_name }}"
ansible.builtin.lineinfile:
path: "/etc/borgmatic/{{ borgmatic_config_name }}"
regexp: "# ssh_command: ssh -i ~/.ssh/id_ed25519"
line: "{{ ynh_ssh_borg_command }}"
state: present
when: ynh_ssh_borg_command is defined
tags:
- backup
- borg
- name: change archive name in "/etc/borgmatic/{{ borgmatic_config_name }}"
ansible.builtin.lineinfile:
path: "/etc/borgmatic/{{ borgmatic_config_name }}"
regexp: "archive_name_format:"
line: " archive_name_format: {{ borg_archive_name_format }}"
state: present
tags:
- backup
- borg
- name: Create borg launch script in /usr/local/bin
ansible.builtin.copy:
content: |
#!/bin/bash
. /opt/borgmatic/bin/activate
borg "$@"
dest: /usr/local/bin/borg
owner: root
group: root
mode: "0755"
tags:
- backup
- borg
- name: Initialize a new Borg repository
ansible.builtin.command: "{{ borg_init_command }}"
tags:
- backup
- borg