c10baec86f
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
121 lines
3.9 KiB
YAML
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
|