From 9691d7dc5da1c9eb056927c173d0788a7dc1862a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomislav=20Kopi=C4=87?= Date: Sat, 10 Feb 2024 12:09:14 +0100 Subject: [PATCH] Fix template extension, add borg backup install --- playbooks/install_borgbackup.yml | 31 +++++++++++++++++++++++++++++++ templates/borgbackup.j2 | 15 +++++++++++++++ templates/zabbix_agentd2.j2 | 20 ++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 playbooks/install_borgbackup.yml create mode 100644 templates/borgbackup.j2 create mode 100644 templates/zabbix_agentd2.j2 diff --git a/playbooks/install_borgbackup.yml b/playbooks/install_borgbackup.yml new file mode 100644 index 0000000..49f1ff4 --- /dev/null +++ b/playbooks/install_borgbackup.yml @@ -0,0 +1,31 @@ +--- +- hosts: all + become: yes + vars: + borg.repo.path: /var/backup/backup.borg/ + borg.repo.encryption: none + tasks: + - name: "Install borg backup" + apt: + name: borgbackup + state: latest + + - name: "Create backup repository" + ansible.builtin.command: borg init -e {{borg.repo.encryption}} {{borg.repo.path}} + args: + creates: {{borg.repo.path}} + + - name: "Configure backup script" + ansible.builtin.copy: + src: ../templates/borgbackup.j2 + dest: /opt/borgbackup.sh + owner: root + group: root + mode: '744' + + - name: "Configure cronjob" + ansible.builtin.cron: + name: "Borg backup" + minute: "0" + hour: "1" + job: "/opt/borgbackup.sh" diff --git a/templates/borgbackup.j2 b/templates/borgbackup.j2 new file mode 100644 index 0000000..51c6b64 --- /dev/null +++ b/templates/borgbackup.j2 @@ -0,0 +1,15 @@ + #!/bin/bash + +# Borg repo location +REPOSITORY={{borg.repo.path}} +# Example of remote repo +# REPOSITORY=ssh://backuper@192.168.1.100/{{borg.repo.path}} + +echo "`date +[%F/%T]` Starting the backup" +# Create backup +borg create -v --compression lzma,6 --stats $REPOSITORY::$(date +%Y-%m-%d-%H:%M) /etc/ /var/spool/ --exclude=*.log +# Clean old backups +borg prune -v $REPOSITORY --keep-daily=3 --keep-weekly=2 --keep-monthly=12 +echo "`date +[%F/%T]` Done!" + +exit diff --git a/templates/zabbix_agentd2.j2 b/templates/zabbix_agentd2.j2 new file mode 100644 index 0000000..5718ca5 --- /dev/null +++ b/templates/zabbix_agentd2.j2 @@ -0,0 +1,20 @@ +PidFile=/var/run/zabbix/zabbix_agent2.pid +LogType=file +LogFile=/var/log/zabbix/zabbix_agent2.log +LogFileSize=0 +DebugLevel=2 +Server={{ zabbix_server }} +ListenPort=10050 +ListenIP={{ ansible_default_ipv4.address }} +ServerActive={{ zabbix_server }} +Hostname={{ ansible_hostname }} +HostMetadata={{ host_meta }} +RefreshActiveChecks=300 +Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf +ControlSocket=/tmp/agent.sock +Include=./zabbix_agent2.d/plugins.d/*.conf +TLSAccept=psk +TLSConnect=psk +TLSPSKIdentity={{ psk_id }} +TLSPSKFile=/etc/zabbix/key.psk +UserParameter=get.sensors.data,/usr/bin/sensors -j