diff --git a/playbooks/lvm_self_backup.yml b/playbooks/lvm_self_backup.yml
deleted file mode 100644
index d5257ae..0000000
--- a/playbooks/lvm_self_backup.yml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-# Infrastructure
-# Ansible instructions to deploy the infrastructure
-# Copyright (C) 2020 Saibotk
-#
-# 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, version 3 of the License.
-#
-# 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 .
-
-- name: Install & configure LVM self backup
- hosts: lvm_self_backup
- roles:
- - docker
- - lvm_self_backup
diff --git a/roles/lvm_self_backup/README.md b/roles/lvm_self_backup/README.md
deleted file mode 100644
index e8c0ec1..0000000
--- a/roles/lvm_self_backup/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-lvm_self_backup
-=========
-
-This will deploy a `backup-lvm` and `backup-lvm-ls` script to backup configured LVM volumes encrypted with GPG using duplicity and list the remote content for verification. A systemd timer is also deployed to schedule automatic backups daily at 4 AM.
-
-Requirements
-------------
-
-You will need to have docker installed or declared as a dependency with the respective role.
-
-Role Variables
---------------
-
-**Please look at the [defaults/main.yml](defaults/main.yml) for all available variables and their description.**
-
-**Note: Lines that are commented out via `#` are usually still valid/used variables, but they are not defined by default, so they might enable a feature, when uncommenting/defining them!**
-
-Dependencies
-------------
-
-- docker
-
-License
--------
-
-GPL-3.0-only
diff --git a/roles/lvm_self_backup/defaults/main.yml b/roles/lvm_self_backup/defaults/main.yml
deleted file mode 100644
index ce3f774..0000000
--- a/roles/lvm_self_backup/defaults/main.yml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-# Default variables for the lvm_self_backup role
-
-# Infrastructure
-# Ansible instructions to deploy the infrastructure
-# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern
-# Copyright (C) 2020 Saibotk
-#
-# 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, version 3 of the License.
-#
-# 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 .
-
-# The directory to put the status flag in
-lvm_self_backup_status_directory: "/monitoring"
-
-# Status directory user & group id
-# This can be used for example to give telegraf access to the status files.
-lvm_self_backup_status_directory_uid: 100
-lvm_self_backup_status_directory_gid: 101
-
-# The LVM volumes to backup
-# Available fields:
-# vg_name - The volume group that the volume resides in
-# lv_name - The logical volume name that should be backed up
-# fstype - Optional. Set to "xfs" to mount the snapshots with the `nouuid` flag when the XFS filesystem is used.
-#
-lvm_self_backup_vols: []
-
-# The backup target (see duplicity for valid inputs)
-lvm_self_backup_target: ""
-
-# The duplicity image & version
-lvm_self_backup_duplicity_image: "quay.io/sheogorath/duplicity"
-# renovate: depName=quay.io/sheogorath/duplicity
-lvm_self_backup_duplicity_version: "1.2.3"
-lvm_self_backup_duplicity_image_version: "{{ lvm_self_backup_duplicity_version }}"
-
-# The GPG options to be used when backing up
-# Generate a GPG key as the root user before using this role and enter the details here!
-lvm_self_backup_gpg:
- id: ""
- passphrase: "PASSWORD"
- sign_key: "{{ lvm_self_backup_gpg.id }}"
- encryption_keys:
- - "{{ lvm_self_backup_gpg.id }}"
-
-# Should the systemd timer be enabled to automatically backup every day?
-lvm_self_backup_timer_enabled: true
-lvm_self_backup_timer_state: "started"
-
-# Management for backup retention if enabled, backups will be dropped.
-lvm_self_backup_retention:
- # Number of incremental backups to keep.
- # Incremental backups require a full backup as base.
- # Therefore the incremental count must be lower
- # then under full backup if both are enabled.
- incremental:
- enabled: true
- count: 3
- # Number of full backups to keep. All additional will be deleted.
- # Starting from the oldest.
- full:
- enabled: true
- count: 6
diff --git a/roles/lvm_self_backup/handlers/main.yml b/roles/lvm_self_backup/handlers/main.yml
deleted file mode 100644
index e16a081..0000000
--- a/roles/lvm_self_backup/handlers/main.yml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-# Handlers for lvm_self_backup
-
-# Infrastructure
-# Ansible instructions to deploy the infrastructure
-# Copyright (C) 2021 Saibotk
-#
-# 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, version 3 of the License.
-#
-# 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 .
-
-- name: Reload systemd config
- ansible.builtin.systemd:
- daemon_reload: true
- become: true
diff --git a/roles/lvm_self_backup/meta/main.yml b/roles/lvm_self_backup/meta/main.yml
deleted file mode 100644
index a9c6d53..0000000
--- a/roles/lvm_self_backup/meta/main.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-galaxy_info:
- author: saibotk
- description: "Deploys a self backup solution using lvm and duplicity."
- license: GPL-3.0-only
- min_ansible_version: "2.9"
- standalone: true
-
- platforms:
- - name: EL
- versions:
- - all
- - name: GenericUNIX
- versions:
- - all
- - name: Fedora
- versions:
- - all
- - name: opensuse
- versions:
- - all
- - name: GenericBSD
- versions:
- - all
- - name: FreeBSD
- versions:
- - all
- - name: Ubuntu
- versions:
- - all
- - name: SLES
- versions:
- - all
- - name: GenericLinux
- versions:
- - all
- - name: Debian
- versions:
- - all
-
- galaxy_tags: []
-
-dependencies:
- - role: docker
diff --git a/roles/lvm_self_backup/tasks/main.yml b/roles/lvm_self_backup/tasks/main.yml
deleted file mode 100644
index 7466d54..0000000
--- a/roles/lvm_self_backup/tasks/main.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-# Tasks file for the lvm_self_backup role
-
-# Infrastructure
-# Ansible instructions to deploy the infrastructure
-# Copyright (C) 2020 Saibotk
-#
-# 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, version 3 of the License.
-#
-# 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 .
-
-- name: Create backup mount directories
- ansible.builtin.file:
- path: "/lvm_self_backup_snapshots/{{ item.vg_name }}-{{ item.lv_name }}"
- state: directory
- mode: "0700"
- owner: "root"
- group: "root"
- recurse: true
- with_items:
- - "{{ lvm_self_backup_vols }}"
- become: true
-
-- name: Create backup status directory
- ansible.builtin.file:
- path: "{{ item }}"
- state: directory
- mode: "0700"
- owner: "{{ lvm_self_backup_status_directory_uid }}"
- group: "{{ lvm_self_backup_status_directory_gid }}"
- recurse: true
- with_items:
- - "{{ lvm_self_backup_status_directory }}"
- become: true
-
-- name: Install backup scripts.
- ansible.builtin.template:
- src: "{{ item.src }}"
- dest: "{{ item.dest }}"
- mode: "0700"
- owner: "root"
- group: "root"
- with_items:
- - src: "backup-lvm.sh"
- dest: "/usr/local/bin/backup-lvm"
- - src: "backup-lvm-ls.sh"
- dest: "/usr/local/bin/backup-lvm-ls"
- become: true
-
-- name: Install backup services & timer.
- ansible.builtin.template:
- src: "{{ item }}"
- dest: /etc/systemd/system/
- mode: "0600"
- owner: "root"
- group: "root"
- with_items:
- - "backup-error.service"
- - "backup-lvm.service"
- - "backup-lvm.timer"
- notify: Reload systemd config
- become: true
-
-- name: Start & enable backup service timer.
- ansible.builtin.systemd:
- daemon_reload: true
- name: backup-lvm.timer
- enabled: "{{ lvm_self_backup_timer_enabled | bool }}"
- state: "{{ lvm_self_backup_timer_state }}"
- become: true
diff --git a/roles/lvm_self_backup/templates/backup-error.service b/roles/lvm_self_backup/templates/backup-error.service
deleted file mode 100644
index 14e7dbe..0000000
--- a/roles/lvm_self_backup/templates/backup-error.service
+++ /dev/null
@@ -1,6 +0,0 @@
-[Unit]
-Description=Writes the error for the monitoring to pick the failure up.
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/bash -c 'echo 1337 > {{ lvm_self_backup_status_directory }}/backup.status && chown {{ lvm_self_backup_status_directory_uid }}:{{ lvm_self_backup_status_directory_gid }} {{ lvm_self_backup_status_directory }}/backup.status'
diff --git a/roles/lvm_self_backup/templates/backup-lvm-ls.sh b/roles/lvm_self_backup/templates/backup-lvm-ls.sh
deleted file mode 100644
index a3eccf5..0000000
--- a/roles/lvm_self_backup/templates/backup-lvm-ls.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-# Infrastructure
-# Ansible instructions to deploy the infrastructure
-# Copyright (C) 2020 Saibotk
-#
-# 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, version 3 of the License.
-#
-# 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 .
-
-echo "Listing backed up data:"
-docker run --name="duplicity-backup-lvm" \
- --security-opt "label=disable" \
- --security-opt "no-new-privileges" \
- --cap-drop=ALL \
- --cap-add=DAC_OVERRIDE \
- --rm \
- -v "$HOME/.cache/duplicity/:/archive" \
- -v "/root/.gnupg/:/root/.gnupg/" \
- -v "/lvm_self_backup_snapshots/:/backup/:ro" \
- -e "PASSPHRASE={{ lvm_self_backup_gpg.passphrase }}" \
- --hostname {{ ansible_fqdn }} \
- {{ lvm_self_backup_duplicity_image }}:{{ lvm_self_backup_duplicity_image_version }} \
- list-current-files \
- --sign-key "{{ lvm_self_backup_gpg.sign_key | default(lvm_self_backup_gpg.id) }}" \
-{% for encryption_key in lvm_self_backup_gpg.encryption_keys | default([lvm_self_backup_gpg.id]) %}
- --encrypt-key "{{ encryption_key }}" \
-{% endfor %}
- "{{ lvm_self_backup_target }}"
diff --git a/roles/lvm_self_backup/templates/backup-lvm.service b/roles/lvm_self_backup/templates/backup-lvm.service
deleted file mode 100644
index 6a0a1fd..0000000
--- a/roles/lvm_self_backup/templates/backup-lvm.service
+++ /dev/null
@@ -1,33 +0,0 @@
-[Unit]
-Description=Start lvm backup using duplicity.
-
-[Service]
-Type=oneshot
-
-TimeoutSec=20h
-
-# Creating snapshots
-{% for item in lvm_self_backup_vols %}
-ExecStartPre=/usr/sbin/lvcreate -L 1G -n {{ item.lv_name }}_snap -s {{ item.vg_name }}/{{ item.lv_name }}
-{% endfor %}
-
-# Mounting snapshots
-{% for item in lvm_self_backup_vols %}
-ExecStartPre=/usr/bin/mount -o ro,nosuid,noexec{% if item.fstype is defined and item.fstype == "xfs" %},nouuid{% endif %} -t {{ item.fstype | default("ext4") }} /dev/{{ item.vg_name }}/{{ item.lv_name }}_snap /lvm_self_backup_snapshots/{{ item.vg_name }}-{{ item.lv_name }}
-{% endfor %}
-
-ExecStart=/usr/local/bin/backup-lvm
-
-# Make sure duplicity container is gone
-ExecStopPost=/usr/bin/docker rm --force duplicity-backup-lvm
-
-# Unmount snapshots
-{% for item in lvm_self_backup_vols %}
-ExecStopPost=/usr/bin/umount /dev/{{ item.vg_name }}/{{ item.lv_name }}_snap
-{% endfor %}
-
-# Remove snapshots
-{% for item in lvm_self_backup_vols %}
-ExecStopPost=/usr/sbin/lvremove -f {{ item.vg_name }}/{{ item.lv_name }}_snap
-{% endfor %}
-
diff --git a/roles/lvm_self_backup/templates/backup-lvm.sh b/roles/lvm_self_backup/templates/backup-lvm.sh
deleted file mode 100644
index 877baa8..0000000
--- a/roles/lvm_self_backup/templates/backup-lvm.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/bash
-
-# Infrastructure
-# Ansible instructions to deploy the infrastructure
-# Copyright (C) 2020 Saibotk
-#
-# 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, version 3 of the License.
-#
-# 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 .
-
-function backup () {(
- set -e
-
- echo "Starting data backup:"
-
- docker run --name="duplicity-backup-lvm" \
- --security-opt "label=disable" \
- --security-opt "no-new-privileges" \
- --cap-drop=ALL \
- --cap-add=DAC_OVERRIDE \
- --rm \
- -v "$HOME/.cache/duplicity/:/archive" \
- -v "/root/.gnupg/:/root/.gnupg/" \
- -v "/lvm_self_backup_snapshots/:/backup/:ro" \
- -e "PASSPHRASE={{ lvm_self_backup_gpg.passphrase }}" \
- --hostname {{ ansible_fqdn }} \
- {{ lvm_self_backup_duplicity_image }}:{{ lvm_self_backup_duplicity_image_version }} \
- --full-if-older-than 1M \
- --progress \
- --progress-rate 60 \
- --sign-key "{{ lvm_self_backup_gpg.sign_key | default(lvm_self_backup_gpg.id) }}" \
-{% for encryption_key in lvm_self_backup_gpg.encryption_keys | default([lvm_self_backup_gpg.id]) %}
- --encrypt-key "{{ encryption_key }}" \
-{% endfor %}
- /backup/ \
- "{{ lvm_self_backup_target }}"
-
-{% if lvm_self_backup_retention.incremental.enabled %}
- echo "Remove old incremental backups"
- docker run --name="duplicity-backup-lvm" \
- --security-opt "label=disable" \
- --security-opt "no-new-privileges" \
- --cap-drop=ALL \
- --cap-add=DAC_OVERRIDE \
- --rm \
- -v "$HOME/.cache/duplicity/:/archive" \
- --hostname {{ ansible_fqdn }} \
- {{ lvm_self_backup_duplicity_image }}:{{ lvm_self_backup_duplicity_image_version }} \
- remove-all-inc-of-but-n-full {{ lvm_self_backup_retention.incremental.count }} --force \
- "{{ lvm_self_backup_target }}"
-{% endif %}
-
-{% if lvm_self_backup_retention.full.enabled %}
- echo "Remove old full backups"
- docker run --name="duplicity-backup-lvm" \
- --security-opt "label=disable" \
- --security-opt "no-new-privileges" \
- --cap-drop=ALL \
- --cap-add=DAC_OVERRIDE \
- --rm \
- -v "$HOME/.cache/duplicity/:/archive" \
- --hostname {{ ansible_fqdn }} \
- {{ lvm_self_backup_duplicity_image }}:{{ lvm_self_backup_duplicity_image_version }} \
- remove-all-but-n-full {{ lvm_self_backup_retention.full.count }} --force \
- "{{ lvm_self_backup_target }}"
-{% endif %}
-)}
-
-echo "LVM backup started:"
-
-backup
-success=$?
-if [ $success -gt 0 ]; then
- echo "ERROR: An error occured during backup! $success"
-fi
-
-echo $success > {{ lvm_self_backup_status_directory }}/backup.status
-
-chown {{ lvm_self_backup_status_directory_uid }}:{{ lvm_self_backup_status_directory_gid }} {{ lvm_self_backup_status_directory }}/backup.status
-
-exit $success
diff --git a/roles/lvm_self_backup/templates/backup-lvm.timer b/roles/lvm_self_backup/templates/backup-lvm.timer
deleted file mode 100644
index 1ac3b3b..0000000
--- a/roles/lvm_self_backup/templates/backup-lvm.timer
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=Schedule regular lvm backups.
-
-[Timer]
-OnCalendar=*-*-* 4:00:00
-
-[Install]
-WantedBy=multi-user.target