tasks for backup server

This commit is contained in:
2022-11-22 16:28:24 +01:00
parent 90f85fc4f8
commit 7dd899df04
7 changed files with 109 additions and 17 deletions

View File

@@ -0,0 +1,20 @@
# Load distro-specific variables
- include_vars: "{{ ansible_distribution }}.yml"
tags: always
ignore_errors: True
- block:
- debug:
msg: Debug
# basics
- import_tasks: software/packages_utilities.yml
# Perform remaining tasks:
- import_tasks: system_setup/cron.yml
- import_tasks: system_setup/copy_backup_config.yml
- debug:
msg: hostvars.hosts_to_backup
rescue:
- set_fact: task_failed=true

View File

@@ -0,0 +1,23 @@
- name: backup | utilities | install utility packages
tags: packages,system,system setup
package:
state: latest
name:
- sudo
- rsync
- name: backup | utilities | install utilities (arch)
tags: packages,system,system setup
package:
state: latest
name:
- mariadb-clients
when: ansible_distribution == "Archlinux"
- name: backup | utilities | install utilities (debian)
tags: packages,system,system setup
package:
state: latest
name:
- mariadb-client
when: ansible_distribution == "Debian"

View File

@@ -0,0 +1,16 @@
- name: backup | system setup | create backup config directory
file:
path: "/opt/backup/"
state: directory
- name: backup | system setup | copy backup config files
copy:
dest: "/opt/backup/config"
src: "config"
- name: backup | system setup | add entries to ssh_config
template:
src: "ssh_config.j2"
dest: "{{ ansible_user }}/.ssh/config"
backup: true
mode: "0644"

View File

@@ -0,0 +1,16 @@
- name: backup | system setup | cron
become: true
become_user: root
cron:
name: "backup {{ item.sequence }}"
job: "/root/bin/backup.new {{ item.switch }}"
state: present
minute: "{{ item.minute }}"
hour: "{{ item.hour }}"
day: "{{ item.day }}"
month: "{{ item.month }}"
loop:
- { sequence: "daily", switch: "-d", minute: "0", hour: "3", day: "*", month: "*"}
- { sequence: "weekly", switch: "-w", minute: "0", hour: "4", day: "*", month: "*"}
- { sequence: "monthly", switch: "-m", minute: "30", hour: "6", day: "1", month: "*"}
- { sequence: "yearly", switch: "-y", minute: "59", hour: "23", day: "31", month: "12"}

View File

@@ -0,0 +1,7 @@
{% for host in hostvars[inventory_name]['hosts_to_backup'] %}
Host {{ host.hostname }}_backup
Hostname {{ host.fqdn }}
User root
IdentityFile ~/.ssh/backup_ed25519
IdentitiesOnly yes
{% endfor %}