Skip to content

Commit

Permalink
Test and dependency fixes (#153)
Browse files Browse the repository at this point in the history
  • Loading branch information
m3nu authored Oct 18, 2024
1 parent ad163fe commit c8a295a
Show file tree
Hide file tree
Showing 10 changed files with 55 additions and 30 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Ansible Role: BorgBackup Client

[![Test](https://github.com/borgbase/ansible-role-borgbackup/actions/workflows/main.yml/badge.svg)](https://github.com/borgbase/ansible-role-borgbackup/actions/workflows/main.yml) [![Ansible Galaxy](https://img.shields.io/ansible/role/48519)](https://galaxy.ansible.com/borgbase/ansible_role_borgbackup)
[![Test](https://github.com/borgbase/ansible-role-borgbackup/actions/workflows/main.yml/badge.svg)](https://github.com/borgbase/ansible-role-borgbackup/actions/workflows/main.yml) [![Ansible Galaxy](https://img.shields.io/ansible/role/d/borgbase/ansible_role_borgbackup?logo=ansible&color=5cbec1&label=Ansible%20Galaxy)](https://galaxy.ansible.com/ui/standalone/roles/borgbase/ansible_role_borgbackup/)

Set up encrypted, compressed and deduplicated backups using [BorgBackup](https://borgbackup.readthedocs.io/en/stable/) and [Borgmatic](https://github.com/witten/borgmatic). Currently supports Debian/Ubuntu, CentOS/Red Hat/Fedora, Archlinux and Manjaro.

Expand All @@ -19,12 +19,13 @@ Works great with [BorgBase.com](https://www.borgbase.com) - Simple and Secure Ho
Systemd timers, be sure to remove the Cron job in `/etc/cron.d/borgmatic` first.
The role will also alert you when trying to use both timers.

## Example playbook with root as backup user and Cron timer
## Example playbook with root as backup user, using the distro package and Cron timer

```
- hosts: all
roles:
- role: borgbase.ansible_role_borgbackup
borg_install_method: package
borg_encryption_passphrase: CHANGEME
borg_repository:
- ssh://[email protected]/./repo
Expand Down
2 changes: 2 additions & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,6 @@ borgmatic_version: ">=1.7.11"
borg_venv_path: "/opt/borgmatic"
borg_user: "root"
borg_group: "root"
backup_user_info:
home: "/home/{{ borg_user }}"
...
10 changes: 5 additions & 5 deletions meta/argument_specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ argument_specs:
default: root
description: Name of the Group to create Backups (Service Account)
borg_source_directories:
type: List
type: list
default: "/etc/hostname"
required: false
description: List of local folders to back up.
Expand All @@ -59,7 +59,7 @@ argument_specs:
required: false
description: Don't cross file-system boundaries.
borg_repository:
type: List
type: str
required: true
description: |
Full path to repository.
Expand All @@ -75,11 +75,11 @@ argument_specs:
required: false
description: Store ctime into archive.
borg_exclude_patterns:
type: List
type: list
required: false
description: Any paths matching these patterns are excluded from backups. Globs and tildes are expanded.
borg_exclude_from:
type: List
type: list
required: false
description: Read exclude patterns from one or more separate named files, one pattern per line.
borg_remote_path:
Expand Down Expand Up @@ -144,7 +144,7 @@ argument_specs:
required: false
description: Number of yearly archives to keep.
borgmatic_checks:
type: List
type: list
required: false
description: |
List of one or more consistency checks to run
Expand Down
4 changes: 1 addition & 3 deletions meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ galaxy_info:
- all
- name: Ubuntu
versions:
- trusty
- xenial
- bionic
- all
- name: ArchLinux
versions:
- all
Expand Down
19 changes: 11 additions & 8 deletions molecule/default/converge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,17 @@
name: "{{ openssh_package }}"
state: present

- name: Enable EPEL for yamllint
package:
name: epel-release
state: present
when: ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora'

- name: Install yamllint
package:
name: yamllint
state: present

roles:
- role: borgbase.ansible_role_borgbackup
borg_install_method: pip
Expand All @@ -42,11 +53,3 @@
- name: users
hostname: database1.example.org
port: 5433

post_tasks:
- name: Install yamllint for checking config file
pip:
name: yamllint
executable: pip3
extra_args: "{{ pip3_extra_args }}"

4 changes: 2 additions & 2 deletions molecule/default/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ platforms:
image: almalinux:9
- name: fedora-latest
image: fedora:latest
- name: debian-bullseye
image: debian:bullseye
- name: debian-bookworm
image: debian:bookworm
- name: ubuntu-latest
image: ubuntu:latest
provisioner:
Expand Down
6 changes: 6 additions & 0 deletions tasks/noauto_install_pip.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
---
- name: Install Borg and Borgmatic via pip
block:
- name: Ensure the crb repository is enabled for RedHat (needed for xxhash)
community.general.dnf_config_manager:
name: crb
state: enabled
when: ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora'

- name: Install build dependencies
ansible.builtin.package:
name: "{{ borg_pip_packages }}"
Expand Down
6 changes: 6 additions & 0 deletions vars/Archlinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,16 @@ borg_dep_packages:
borg_cron_package: cronie

borg_pip_packages:
- acl
- gcc
- lz4
- openssl
- pkgconfig
- python-pip
- python-setuptools
- xxhash
- xz
- zstd

borg_distro_packages:
- borg
Expand Down
17 changes: 11 additions & 6 deletions vars/Fedora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@ borg_dep_packages:
borg_cron_package: cronie

borg_pip_packages:
- libacl-devel
- libacl
- gcc
- gcc-c++
- libacl
- libacl-devel
- libzstd-devel
- lz4-devel
- openssl-devel
- python3-pip
- python3-wheel
- openssl-devel
- python3-cython
- python3-devel
- python3-pip
- python3-setuptools
- python3-Cython

- python3-wheel
- xxhash
- xxhash-devel

borg_distro_packages:
- borgbackup
- borgmatic
Expand Down
12 changes: 8 additions & 4 deletions vars/RedHat-9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,20 @@ borg_dep_packages:
borg_cron_package: cronie

borg_pip_packages:
- libacl-devel
- libacl
- gcc
- gcc-c++
- libacl
- libacl-devel
- libzstd-devel
- lz4-devel
- openssl-devel
- python3-pip
# - python3-wheel
- python3-devel
- python3-pip
- python3-setuptools
- xxhash
- xxhash-devel
# - python3-virtualenv
# - python3-wheel

borg_distro_packages:
- borgbackup
Expand Down

0 comments on commit c8a295a

Please sign in to comment.