Files
ansible/nas.yaml

74 lines
2.2 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:
timeout: 90
delegate_to: localhost
- name: Check mount point exists
file:
path: /media/nas
state: directory
- name: Mount nas volume
ansible.posix.mount:
src: 192.168.178.50:/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 }})"