68 lines
1.7 KiB
YAML
68 lines
1.7 KiB
YAML
---
|
|
# This playbook creates a backup of minisforum and writes it to odroid.
|
|
# Must be run on minisforum
|
|
- name: Backup minisforum to odroid
|
|
hosts: all
|
|
vars:
|
|
directories:
|
|
- docker
|
|
- media
|
|
- nextcloud
|
|
- sftp
|
|
- strato-production
|
|
gather_facts: true
|
|
|
|
tasks:
|
|
- name: Include variables
|
|
include_vars: vars/semaphore-token.yaml
|
|
|
|
- name: Wakeup odroid
|
|
community.general.wakeonlan:
|
|
mac: '00:1E:06:45:4C:45'
|
|
|
|
- name: Wait odroid is responding
|
|
ansible.builtin.wait_for:
|
|
host: 192.168.178.56
|
|
port: 2049
|
|
|
|
- name: Mount odroid storage
|
|
ansible.posix.mount:
|
|
src: 192.168.178.56:/media/backup
|
|
path: /media/odroid
|
|
state: mounted
|
|
fstype: nfs
|
|
become: true
|
|
|
|
- name: Check backup directory exists
|
|
ansible.builtin.file:
|
|
path: /media/odroid/minisforum
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: Check file path for storage directories exists
|
|
ansible.builtin.file:
|
|
path: /media/odroid/minisforum/{{ item }}
|
|
state: directory
|
|
mode: '0755'
|
|
loop: "{{ directories }}"
|
|
|
|
- name: Backup minisforum directories
|
|
ansible.builtin.shell: rsync -a --delete /media/backup/{{ item }}/ /media/odroid/minisforum/{{ item }}/
|
|
loop: "{{ directories }}"
|
|
|
|
- name: Unmount the volume
|
|
ansible.posix.mount:
|
|
path: /media/odroid
|
|
state: unmounted
|
|
become: true
|
|
|
|
- name: Run next playbook
|
|
ansible.builtin.uri:
|
|
url: http://ansible.lan/api/integrations/ei0dtntvuz54ot3s
|
|
method: GET
|
|
status_code: 204
|
|
headers:
|
|
Content-Type: application/json
|
|
Authorization: Bearer "{{ token }}"
|
|
run: shutdown
|