tasks for backup server
This commit is contained in:
20
roles/backup/tasks/main.yml
Normal file
20
roles/backup/tasks/main.yml
Normal 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
|
||||
23
roles/backup/tasks/software/packages_utilities.yml
Normal file
23
roles/backup/tasks/software/packages_utilities.yml
Normal 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"
|
||||
16
roles/backup/tasks/system_setup/copy_backup_config.yml
Normal file
16
roles/backup/tasks/system_setup/copy_backup_config.yml
Normal 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"
|
||||
16
roles/backup/tasks/system_setup/cron.yml
Normal file
16
roles/backup/tasks/system_setup/cron.yml
Normal 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"}
|
||||
7
roles/backup/templates/ssh_config.j2
Normal file
7
roles/backup/templates/ssh_config.j2
Normal 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 %}
|
||||
Reference in New Issue
Block a user