Ansible-Sanoid/roles/sanoid/tasks/main.yml
2025-05-20 16:31:56 -06:00

95 lines
1.9 KiB
YAML

---
# file: roles/zfs/tasks/main.yml
- name: Enable Code Ready Builder
community.general.dnf_config_manager:
name: crb
state: enabled
- name: Install EPEL
package:
name: epel-release
state: present
- name: Install Dependencies
package:
name: "{{ item }}"
state: present
loop:
- "git"
- "perl-Config-IniFiles"
- "perl-Data-Dumper"
- "perl-Capture-Tiny"
- "perl-Getopt-Long"
- "lzop"
- "mbuffer"
- "mhash"
- "pv"
- name: Clone Sanoid Repository
git:
repo: "https://github.com/jimsalterjrs/sanoid.git"
dest: "/opt/repos/sanoid"
- name: Place Executables
copy:
remote_src: true
src: "/opt/repos/sanoid/{{ item }}"
dest: "/usr/local/sbin"
mode: "preserve"
loop:
- "sanoid"
- "syncoid"
- "findoid"
- "sleepymutex"
- name: Create Sanoid Config Directory
file:
path: /etc/sanoid
state: directory
- name: Place Default Config
copy:
remote_src: true
src: "/opt/repos/sanoid/sanoid.defaults.conf"
dest: "/etc/sanoid/sanoid.defaults.conf"
- name: Create Config
template:
src: "sanoid.conf.j2"
dest: "/etc/sanoid/sanoid.conf"
- name: Create Sanoid Service
template:
src: "sanoid.service.j2"
dest: "/etc/systemd/system/sanoid.service"
become: true
notify: Daemon Reload
- name: Create Sanoid Pruning Service
template:
src: "sanoid-prune.service.j2"
dest: "/etc/systemd/system/sanoid-prune.service"
become: true
notify: Daemon Reload
- name: Create Sanoid Timer
template:
src: "sanoid.timer.j2"
dest: "/etc/systemd/system/sanoid.timer"
become: true
notify: Daemon Reload
- name: Flush handlers
meta: flush_handlers
- name: Enable Prune Service
service:
name: sanoid-prune.service
enabled: true
- name: Start and Enable Timer
service:
name: sanoid.timer
state: started
enabled: true