initial check-in
This commit is contained in:
commit
da07ed37eb
|
@ -0,0 +1,6 @@
|
||||||
|
# Ansible Role: borg_backups
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This role will install borgbackup and the borg backup scripts on the target host.
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
galaxy_info:
|
||||||
|
author: radar231
|
||||||
|
|
||||||
|
license: license (GPL-2.0-or-later, MIT, etc)
|
||||||
|
min_ansible_version: 2.1
|
||||||
|
galaxy_tags: []
|
||||||
|
dependencies: []
|
||||||
|
|
||||||
|
# EOF
|
|
@ -0,0 +1,100 @@
|
||||||
|
---
|
||||||
|
###########################################################################
|
||||||
|
#
|
||||||
|
# This role will set up our borg backup configuration.
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
# tasks file for borg_backups
|
||||||
|
|
||||||
|
- debug: msg="Setting up borg backups (borg-bu)"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Make sure borgbackup package is installed (Debian)
|
||||||
|
apt:
|
||||||
|
name: borgbackup
|
||||||
|
state: latest
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Make sure borgbackup package is installed (Arch)
|
||||||
|
pacman:
|
||||||
|
name: borgbackup
|
||||||
|
state: latest
|
||||||
|
when: ansible_os_family == "Archlinux"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Create /usr/local/log directory
|
||||||
|
file:
|
||||||
|
path: "/usr/local/log"
|
||||||
|
state: directory
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: checkout borg_backups repository
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: 'http://git.radar231.com/radar231/borg_backups'
|
||||||
|
dest: "/tmp/{{ ansible_hostname }}/borg_backups"
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Copy files to /usr/local/bin
|
||||||
|
copy:
|
||||||
|
src: "/tmp/{{ ansible_hostname }}/borg_backups/{{ item }}"
|
||||||
|
dest: "/usr/local/bin/{{ item }}"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0755"
|
||||||
|
loop:
|
||||||
|
- borg-bu
|
||||||
|
- borg-check
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Copy bu-list to /usr/local/etc (if it doesn't exist)
|
||||||
|
copy:
|
||||||
|
src: "/tmp/{{ ansible_hostname }}/du_backups/bu-list"
|
||||||
|
dest: "/usr/local/etc/bu-list"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0644"
|
||||||
|
force: false
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Add backup entry to root crontab
|
||||||
|
cron:
|
||||||
|
name: "Daily backup"
|
||||||
|
minute: "00"
|
||||||
|
hour: "01"
|
||||||
|
job: "/usr/local/bin/borg-bu >>/usr/local/log/borg_cron_run.log 2>&1 &"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Generate ssh keys for root user (if they dont already exist)
|
||||||
|
openssh_keypair:
|
||||||
|
path: "/root/.ssh/id_rsa"
|
||||||
|
comment: "root@{{ ansible_hostname }}"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
force: false
|
||||||
|
regenerate: never
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Display root public ssh key
|
||||||
|
command: "cat /root/.ssh/id_rsa.pub"
|
||||||
|
register: command_output
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: Print message and ssh key
|
||||||
|
debug:
|
||||||
|
msg:
|
||||||
|
- "Copy the following public ssh key to the borg authorized_keys file on the backup server host:"
|
||||||
|
- ""
|
||||||
|
- "{{ command_output.stdout }}"
|
||||||
|
- ""
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
- name: clean up cloned git repo
|
||||||
|
command: 'rm -rf /tmp/{{ ansible_hostname }}/borg_backups'
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
|
||||||
|
# EOF
|
Loading…
Reference in New Issue