Update backup_client role for OpenBSD

This commit is contained in:
Nemo 2020-08-27 18:01:08 +02:00
parent 64b5c031ee
commit ca080e8611
8 changed files with 35 additions and 8 deletions

View File

@ -14,8 +14,9 @@ backup_client_folders_to_backup: ""
# Folder to deploy backup client scripts
backup_client_scripts_folder: "/usr/local/sbin"
# Backup client user and home directory
# Backup client user, group and home directory
backup_client_user: "root"
client_backup_group: "root"
backup_client_user_home: "/root"
# Crontask backup client scheduling
@ -31,3 +32,9 @@ backup_client_mail_target: "root"
# Compression parameters
backup_client_compression_param: "lzma,9"
# Shell to use in script
backup_client_shell: /bin/bash
# Bin Borgbackup
backup_client_borgbackup_bin: /usr/bin/borg

View File

@ -3,7 +3,7 @@
package:
name: "{{ cron_package }}"
state: present
when: backup_client_folders_to_backup != ""
when: backup_client_folders_to_backup != "" and ansible_os_family != 'OpenBSD'
notify: restart cron
- name: BorgBackup installed

View File

@ -4,7 +4,7 @@
src: backup.sh.j2
dest: "{{ backup_client_scripts_folder }}/backup.sh"
owner: "{{ backup_client_user }}"
group: "{{ backup_client_user }}"
group: "{{ backup_client_group }}"
mode: '0740'
when: backup_client_folders_to_backup != ""

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!{{ backup_client_shell }}
{% for backup_serv in groups['backup_server'] %}
# Check if {{ backup_serv }} is a known host
@ -7,15 +7,15 @@ if [ ! $? -eq 0 ]; then
ssh-keygen -F {{ backup_serv }} || ssh-keyscan {{ backup_serv }} >>~/.ssh/known_hosts
fi
borg list backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s) &>/dev/null
{{ backup_client_borgbackup_bin }} list backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s) &>/dev/null
if [ $? -ne 0 ]
then
ssh backup-$(hostname -s)@{{ backup_serv }} mkdir -p {{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s) -m 0700
export BORG_PASSPHRASE=""
borg init --encryption=repokey backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s)
{{ backup_client_borgbackup_bin }} init --encryption=repokey backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s)
fi
borg prune -v backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s) --keep-daily=7 --keep-weekly=4 --keep-monthly=1
borg create --info --stats --compression {{ backup_client_compression_param }} backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s)::$(date +%F) $(find {{ backup_client_folders_to_backup }} -maxdepth 1 -type d | grep -Ev '^/$|^/tmp|^/lost\+found|^/run|^/proc|^/dev|^/sys' | tr '\n' ' ')
{{ backup_client_borgbackup_bin }} prune -v backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s) --keep-daily=7 --keep-weekly=4 --keep-monthly=1
{{ backup_client_borgbackup_bin }} create --info --stats --compression {{ backup_client_compression_param }} backup-$(hostname -s)@{{ backup_serv }}:{{ hostvars[backup_serv]['backup_folder'] }}/$(hostname -s)::$(date +%F) $(find {{ backup_client_folders_to_backup }} -maxdepth 1 -type d | grep -Ev '^/$|^/tmp|^/lost\+found|^/run|^/proc|^/dev|^/sys' | tr '\n' ' ')
{% endfor %}

View File

@ -2,3 +2,7 @@
cron_service_name: cron
cron_package: cron
aliases_config_file: /etc/aliases
backup_client_user: root
backup_client_group: root
backup_client_shell: /bin/bash
backup_client_borgbackup_bin: /usr/bin/borg

View File

@ -2,3 +2,7 @@
cron_service_name: cronie
cron_package: cronie
aliases_config_file: /etc/mail/aliases
backup_client_user: root
backup_client_group: root
backup_client_shell: /bin/bash
backup_client_borgbackup_bin: /usr/bin/borg

View File

@ -0,0 +1,8 @@
---
cron_service_name: cron
cron_package: cron
aliases_config_file: /etc/mail/aliases
backup_client_user: root
backup_client_group: wheel
backup_client_shell: /bin/ksh
backup_client_borgbackup_bin: /usr/local/bin/borg

View File

@ -2,3 +2,7 @@
cron_service_name: crond
cron_package: cronie
aliases_config_file: /etc/aliases
backup_client_user: root
backup_client_group: root
backup_client_shell: /bin/bash
backup_client_borgbackup_bin: /usr/bin/borg