Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test fixes et al #153

Merged
merged 2 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading