78 lines
2.3 KiB
YAML
78 lines
2.3 KiB
YAML
---
|
|
# This playbook creates a backup of odroid and writes it to the nas.
|
|
- name: Backup odroid to nas.
|
|
hosts: all
|
|
gather_facts: false
|
|
|
|
tasks:
|
|
- name: Backup odroid
|
|
block:
|
|
- include_vars: vars/common/variable.yaml
|
|
|
|
- name: Wakeup the nas
|
|
community.general.wakeonlan:
|
|
mac: '54:04:a6:f1:9b:80'
|
|
|
|
- name: Wait nas is responding
|
|
wait_for_connection:
|
|
timeout: 120
|
|
delay: 5
|
|
sleep: 5
|
|
|
|
- name: Gathering facts
|
|
setup:
|
|
|
|
- name: Check mount point exists
|
|
file:
|
|
path: /media/nas
|
|
state: directory
|
|
|
|
- name: Mount nas volume
|
|
ansible.posix.mount:
|
|
src: 192.168.178.50:/export/data
|
|
path: /media/nas
|
|
state: mounted
|
|
fstype: nfs
|
|
become: yes
|
|
|
|
- name: Backup docker data to nas
|
|
shell: rsync -a --delete /media/backup/docker/ /media/nas/Odroid/docker
|
|
become: yes
|
|
|
|
- name: Backup hetzner data to nas
|
|
shell: rsync -a --delete /media/backup/hetzner/ /media/nas/Odroid/hetzner
|
|
become: yes
|
|
|
|
- name: Backup nextcloud data to nas
|
|
shell: rsync -a --delete /media/backup/nextcloud/ /media/nas/Odroid/nextcloud
|
|
become: yes
|
|
|
|
- name: Backup media to nas
|
|
shell: rsync -a --delete /media/backup/media/ /media/nas/Odroid/media
|
|
become: yes
|
|
|
|
- name: Umount nas volume
|
|
ansible.posix.mount:
|
|
path: /media/nas
|
|
state: unmounted
|
|
become: yes
|
|
|
|
- name: Inform Mattermost about success
|
|
uri:
|
|
url: "{{ mattermost_url }}"
|
|
method: POST
|
|
body_format: json
|
|
body:
|
|
username: "{{ mattermost_user }}"
|
|
text: "{{ ansible_date_time.date }} {{ ansible_date_time.time }} (info): Playbook ran successful ({{ ansible_play_name }})"
|
|
|
|
rescue:
|
|
- name: Inform Mattermost about error
|
|
uri:
|
|
url: "{{ mattermost_url }}"
|
|
method: POST
|
|
body_format: json
|
|
body:
|
|
username: "{{ mattermost_user }}"
|
|
text: "{{ ansible_date_time.date }} {{ ansible_date_time.time }} (info): Playbook ran with error ({{ ansible_play_name }})"
|