mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
feat: rework ansible & secrets
This commit is contained in:
6
ansible/roles/coreelec/defaults/main.yml
Normal file
6
ansible/roles/coreelec/defaults/main.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
root_path: /storage
|
||||
nfs_shares:
|
||||
- music
|
||||
- photo
|
||||
- video
|
16
ansible/roles/coreelec/files/backup.bash
Normal file
16
ansible/roles/coreelec/files/backup.bash
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Variables
|
||||
FLAG_NOTIF=false
|
||||
|
||||
DATE=`date +%Y%m%d%H%M`
|
||||
BACKUP_PATH="/storage/backup"
|
||||
|
||||
cd /
|
||||
|
||||
tar cvf ${BACKUP_PATH}/${DATE}.tar \
|
||||
storage/.kodi storage/.config storage/.cache storage/.ssh \
|
||||
--exclude=storage/.kodi/userdata/Thumbnails
|
||||
|
||||
# Keep the last 5 backups on disk
|
||||
find ${BACKUP_PATH}/*.tar -mtime +5 -type f -delete
|
13
ansible/roles/coreelec/tasks/backup.yml
Normal file
13
ansible/roles/coreelec/tasks/backup.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
- name: backup | copy script
|
||||
ansible.builtin.copy:
|
||||
src: backup.bash
|
||||
dest: /storage/backup.bash
|
||||
mode: 0755
|
||||
|
||||
- name: backup | crontab
|
||||
ansible.builtin.cron:
|
||||
name: "daily backup"
|
||||
minute: "14"
|
||||
hour: "4"
|
||||
job: "/storage/backup.bash && curl -fsS -m 10 --retry 5 -o /dev/null https://healthchecks.{{ SECRET_CLUSTER_DOMAIN }}/ping/aae30879-cfdf-4b90-889f-d4ff69dd8aad"
|
8
ansible/roles/coreelec/tasks/main.yml
Normal file
8
ansible/roles/coreelec/tasks/main.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- ansible.builtin.include_tasks: backup.yml
|
||||
tags:
|
||||
- backup
|
||||
|
||||
- ansible.builtin.include_tasks: nfs.yml
|
||||
tags:
|
||||
- nfs
|
19
ansible/roles/coreelec/tasks/nfs.yml
Normal file
19
ansible/roles/coreelec/tasks/nfs.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: nfs | create directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ root_path }}/mnt/{{ item }}"
|
||||
state: directory
|
||||
loop: "{{ nfs_shares }}"
|
||||
|
||||
- name: nfs | create system.d services
|
||||
ansible.builtin.template:
|
||||
src: "storage-nfs.mount"
|
||||
dest: "/storage/.config/system.d/storage-mnt-{{ item }}.mount"
|
||||
loop: "{{ nfs_shares }}"
|
||||
|
||||
- name: nfs | activate system.d services
|
||||
ansible.builtin.systemd:
|
||||
name: storage-mnt-{{ item }}.mount
|
||||
state: started
|
||||
enabled: yes
|
||||
loop: "{{ nfs_shares }}"
|
16
ansible/roles/coreelec/templates/storage-nfs.mount
Normal file
16
ansible/roles/coreelec/templates/storage-nfs.mount
Normal file
@@ -0,0 +1,16 @@
|
||||
#====================================================
|
||||
[Unit]
|
||||
Description=TrueNAS nfs share {{ item }}
|
||||
Requires=network-online.service
|
||||
After=network-online.service
|
||||
Before=kodi.service
|
||||
|
||||
[Mount]
|
||||
What=truenas:/mnt/storage/{{ item }}
|
||||
Where=/storage/mnt/{{ item }}
|
||||
Options=
|
||||
Type=nfs
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
#====================================================
|
Reference in New Issue
Block a user