Split fedora and manjaro playbooks
Split playbooks to better accomodate development of both.
This commit is contained in:
0
fedora/ansible/btrbk/README.md
Normal file
0
fedora/ansible/btrbk/README.md
Normal file
188
fedora/ansible/btrbk/files/btrbk.conf
Normal file
188
fedora/ansible/btrbk/files/btrbk.conf
Normal file
@@ -0,0 +1,188 @@
|
||||
#
|
||||
# Example btrbk configuration file
|
||||
#
|
||||
#
|
||||
# Please refer to the btrbk.conf(5) man-page for a complete
|
||||
# description of all configuration options.
|
||||
# For more examples, see README.md included with this package.
|
||||
#
|
||||
# btrbk.conf(5): <https://digint.ch/btrbk/doc/btrbk.conf.5.html>
|
||||
# README.md: <https://digint.ch/btrbk/doc/readme.html>
|
||||
#
|
||||
# Note that the options can be overridden per volume/subvolume/target
|
||||
# in the corresponding sections.
|
||||
#
|
||||
|
||||
|
||||
# Enable transaction log
|
||||
transaction_log /var/log/btrbk.log
|
||||
|
||||
# Enable stream buffer. Adding a buffer between the sending and
|
||||
# receiving side is generally a good idea.
|
||||
# NOTE: If enabled, make sure to install the "mbuffer" package!
|
||||
stream_buffer 256m
|
||||
|
||||
# Directory in which the btrfs snapshots are created. Relative to
|
||||
# <volume-directory> of the volume section.
|
||||
# If not set, the snapshots are created in <volume-directory>.
|
||||
#
|
||||
# If you want to set a custom name for the snapshot (and backups),
|
||||
# use the "snapshot_name" option within the subvolume section.
|
||||
#
|
||||
# NOTE: btrbk does not autmatically create this directory, and the
|
||||
# snapshot creation will fail if it is not present.
|
||||
#
|
||||
snapshot_dir _btrbk_snap
|
||||
|
||||
# Always create snapshots. Set this to "ondemand" to only create
|
||||
# snapshots if the target volume is reachable. Set this to "no" if
|
||||
# snapshot creation is done by another instance of btrbk.
|
||||
#snapshot_create always
|
||||
|
||||
# Perform incremental backups (set to "strict" if you want to prevent
|
||||
# creation of non-incremental backups if no parent is found).
|
||||
#incremental yes
|
||||
|
||||
# Specify after what time (in full hours after midnight) backups/
|
||||
# snapshots are considered as a daily backup/snapshot
|
||||
#preserve_hour_of_day 0
|
||||
|
||||
# Specify on which day of week weekly/monthly backups are to be
|
||||
# preserved.
|
||||
#preserve_day_of_week sunday
|
||||
|
||||
# Preserve all snapshots for a minimum period of time.
|
||||
#snapshot_preserve_min 1d
|
||||
|
||||
# Retention policy for the source snapshots.
|
||||
#snapshot_preserve <NN>h <NN>d <NN>w <NN>m <NN>y
|
||||
|
||||
# Preserve all backup targets for a minimum period of time.
|
||||
#target_preserve_min no
|
||||
|
||||
# Retention policy for backup targets:
|
||||
#target_preserve <NN>h <NN>d <NN>w <NN>m <NN>y
|
||||
|
||||
# Retention policy for archives ("btrbk archive" command):
|
||||
#archive_preserve_min no
|
||||
#archive_preserve <NN>h <NN>d <NN>w <NN>m <NN>y
|
||||
|
||||
# Specify SSH private key for "ssh://" volumes / targets:
|
||||
#ssh_identity /etc/btrbk/ssh/id_ed25519
|
||||
#ssh_user root
|
||||
#ssh_compression no
|
||||
#ssh_cipher_spec default
|
||||
|
||||
# Enable compression for remote btrfs send/receive operations:
|
||||
#stream_compress no
|
||||
#stream_compress_level default
|
||||
#stream_compress_threads default
|
||||
|
||||
# Enable lock file support: Ensures that only one instance of btrbk
|
||||
# can be run at a time.
|
||||
#lockfile /var/lock/btrbk.lock
|
||||
|
||||
# Don't wait for transaction commit on deletion. Set this to "after"
|
||||
# or "each" to make sure the deletion of subvolumes is committed to
|
||||
# disk when btrbk terminates.
|
||||
#btrfs_commit_delete no
|
||||
|
||||
|
||||
#
|
||||
# Volume section (optional): "volume <volume-directory>"
|
||||
#
|
||||
# <volume-directory> Base path within a btrfs filesystem
|
||||
# containing the subvolumes to be backuped
|
||||
# (usually the mount-point of a btrfs filesystem
|
||||
# mounted with subvolid=5 option).
|
||||
#
|
||||
# Subvolume section: "subvolume <subvolume-name>"
|
||||
#
|
||||
# <subvolume-name> Subvolume to be backuped, relative to
|
||||
# <volume-directory> in volume section.
|
||||
#
|
||||
# Target section: "target <type> <volume-directory>"
|
||||
#
|
||||
# <type> (optional) type, defaults to "send-receive".
|
||||
# <volume-directory> Directory within a btrfs filesystem
|
||||
# receiving the backups.
|
||||
#
|
||||
# NOTE: The parser does not care about indentation, this is only for
|
||||
# human readability. All options apply to the last section
|
||||
# encountered, overriding the corresponding option of the upper
|
||||
# section. This means that the global options must be set on top,
|
||||
# before any "volume", "subvolume" or "target section.
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# Example retention policy:
|
||||
#
|
||||
snapshot_preserve_min 2d
|
||||
snapshot_preserve 14d
|
||||
|
||||
target_preserve_min no
|
||||
target_preserve 20d 10w *m
|
||||
|
||||
|
||||
#
|
||||
# Simple setup: Backup root and home to external disk
|
||||
#
|
||||
snapshot_dir /btrfs/snapshots
|
||||
target /mnt/btr_pool
|
||||
subvolume /btrfs/root
|
||||
subvolume /btrfs/home
|
||||
|
||||
|
||||
#
|
||||
# Complex setup
|
||||
#
|
||||
# In order to keep things organized, it is recommended to use "volume"
|
||||
# sections and mount the top-level subvolume (subvolid=5):
|
||||
#
|
||||
# $ mount -o subvolid=5 /dev/sda1 /mnt/btr_pool
|
||||
#
|
||||
# Backup to external disk mounted on /mnt/btr_backup
|
||||
#volume /btrfs
|
||||
# Create snapshots in /mnt/btr_pool/btrbk_snapshots
|
||||
# snapshot_dir btrbk_snapshots
|
||||
|
||||
# Target for all subvolume sections:
|
||||
# target /mnt/btr_backup
|
||||
|
||||
# Some default btrfs installations (e.g. Ubuntu) use "@" for rootfs
|
||||
# (mounted at "/") and "@home" (mounted at "/home"). Note that this
|
||||
# is only a naming convention.
|
||||
#subvolume @
|
||||
# subvolume root
|
||||
# subvolume home
|
||||
#subvolume kvm
|
||||
# Use different retention policy for kvm backups:
|
||||
#target_preserve 7d 4w
|
||||
|
||||
|
||||
# Backup data to external disk as well as remote host
|
||||
#volume /mnt/btr_data
|
||||
# subvolume data
|
||||
# Always create snapshot, even if targets are unreachable
|
||||
# snapshot_create always
|
||||
# target /mnt/btr_backup
|
||||
# target ssh://backup.my-remote-host.com/mnt/btr_backup
|
||||
|
||||
|
||||
# Backup from remote host, with different naming
|
||||
#volume ssh://my-remote-host.com/mnt/btr_pool
|
||||
# subvolume data_0
|
||||
# snapshot_dir snapshots/btrbk
|
||||
# snapshot_name data_main
|
||||
# target /mnt/btr_backup/my-remote-host.com
|
||||
|
||||
|
||||
# Resume backups from remote host which runs its own btrbk instance
|
||||
# creating snapshots for "home" in "/mnt/btr_pool/btrbk_snapshots".
|
||||
#volume ssh://my-remote-host.com/mnt/btr_pool
|
||||
# snapshot_dir btrbk_snapshots
|
||||
# snapshot_create no
|
||||
# snapshot_preserve_min all
|
||||
# subvolume home
|
||||
# target /mnt/btr_backup/my-remote-host.com
|
||||
5
fedora/ansible/btrbk/files/btrbk.service
Normal file
5
fedora/ansible/btrbk/files/btrbk.service
Normal file
@@ -0,0 +1,5 @@
|
||||
[Unit]
|
||||
Description=Runs btrbk with config file at /etc/btrbk/btrbk.conf
|
||||
|
||||
[Service]
|
||||
ExecStart=btrbk -c /etc/btrbk/btrbk.conf -v run
|
||||
11
fedora/ansible/btrbk/files/btrbk.timer
Normal file
11
fedora/ansible/btrbk/files/btrbk.timer
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Run btrbk every hour
|
||||
|
||||
[Timer]
|
||||
OnCalendar=hourly
|
||||
AccuracySec=10min
|
||||
Persistent=true
|
||||
Unit=btrbk.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
52
fedora/ansible/btrbk/meta/main.yml
Normal file
52
fedora/ansible/btrbk/meta/main.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
galaxy_info:
|
||||
author: Reese Wells
|
||||
description: Creates a btrbk service that runs every hour and backs up to a usb disk at /mnt/btr_pool
|
||||
company: ""
|
||||
|
||||
# If the issue tracker for your role is not on github, uncomment the
|
||||
# next line and provide a value
|
||||
# issue_tracker_url: http://example.com/issue/tracker
|
||||
|
||||
# Choose a valid license ID from https://spdx.org - some suggested licenses:
|
||||
# - BSD-3-Clause (default)
|
||||
# - MIT
|
||||
# - GPL-2.0-or-later
|
||||
# - GPL-3.0-only
|
||||
# - Apache-2.0
|
||||
# - CC-BY-4.0
|
||||
license: license (GPL-2.0-or-later, MIT, etc)
|
||||
|
||||
min_ansible_version: 2.1
|
||||
|
||||
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
||||
# min_ansible_container_version:
|
||||
|
||||
#
|
||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
||||
# To view available platforms and versions (or releases), visit:
|
||||
# https://galaxy.ansible.com/api/v1/platforms/
|
||||
#
|
||||
# platforms:
|
||||
# - name: Fedora
|
||||
# versions:
|
||||
# - all
|
||||
# - 25
|
||||
# - name: SomePlatform
|
||||
# versions:
|
||||
# - all
|
||||
# - 1.0
|
||||
# - 7
|
||||
# - 99.99
|
||||
|
||||
galaxy_tags: []
|
||||
# List tags for your role here, one per line. A tag is a keyword that describes
|
||||
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
||||
# remove the '[]' above, if you add tags to this list.
|
||||
#
|
||||
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
|
||||
# Maximum 20 tags per role.
|
||||
|
||||
dependencies: []
|
||||
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
||||
# if you add dependencies to this list.
|
||||
37
fedora/ansible/btrbk/tasks/main.yml
Normal file
37
fedora/ansible/btrbk/tasks/main.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
# Ensure btrbk installed
|
||||
- name: Ensure daily-driver (development, work, gaming) installed
|
||||
dnf:
|
||||
name:
|
||||
- btrbk
|
||||
state: present
|
||||
become: yes
|
||||
# Copy btrbk.conf
|
||||
- name: Ensure /etc/btrbk exists
|
||||
file:
|
||||
state: directory
|
||||
path: /etc/btrbk
|
||||
become: yes
|
||||
- name: Copy btrbk.conf
|
||||
copy:
|
||||
src: files/btrbk.conf
|
||||
dest: /etc/btrbk/btrbk.conf
|
||||
become: yes
|
||||
# Copy service definition and timer
|
||||
- name: Copy btrbk.service
|
||||
copy:
|
||||
src: files/btrbk.service
|
||||
dest: /etc/systemd/system/btrbk.service
|
||||
become: yes
|
||||
- name: Copy btrbk.timer
|
||||
copy:
|
||||
src: files/btrbk.timer
|
||||
dest: /etc/systemd/system/btrbk.timer
|
||||
become: yes
|
||||
# Enable btrbk timer
|
||||
- name: Enable btrbk timer
|
||||
ansible.builtin.systemd:
|
||||
name: btrbk.timer
|
||||
state: started
|
||||
daemon_reload: yes
|
||||
become: yes
|
||||
Reference in New Issue
Block a user