--- - name: Install Required Packages become: true ansible.builtin.apt: name: - ca-certificates - apt-transport-https - software-properties-common - curl - wget - rsync - logrotate - libcapture-tiny-perl state: present - name: Create Sanoid Directory become: true ansible.builtin.file: path: "{{ item }}" state: directory owner: root group: root recurse: true with_items: - /usr/local/bin - /etc/sanoid - name: Install Sanoid Dependencies Packages become: true ansible.builtin.apt: name: - libconfig-inifiles-perl force_apt_get: yes update_cache: yes autoremove: yes autoclean: yes state: present - name: Install Sanoid Binary become: true ansible.builtin.get_url: url: https://raw.githubusercontent.com/jimsalterjrs/sanoid/master/sanoid dest: /usr/local/bin/sanoid owner: root group: root mode: 0755 - name: Install Sanoid Defaults Configuration become: true ansible.builtin.get_url: url: https://raw.githubusercontent.com/jimsalterjrs/sanoid/master/sanoid.defaults.conf dest: /etc/sanoid/sanoid.defaults.conf owner: root group: root mode: 0644 - name: Generate Sanoid Configuration become: true ansible.builtin.template: src: sanoid.conf.j2 dest: /etc/sanoid/sanoid.conf owner: root group: root mode: 0644 - name: Create Sanoid Log become: true ansible.builtin.file: path: /var/log/sanoid-cron.log state: touch owner: root group: root mode: 0644 access_time: preserve modification_time: preserve - name: Add Sanoid Log to be Rotated become: true ansible.builtin.blockinfile: path: /etc/logrotate.d/sanoid state: present create: yes owner: root group: root mode: 0644 block: | /var/log/sanoid-cron.log { su root root create 0640 root root rotate 4 weekly compress missingok notifempty dateext dateyesterday } - name: Generate Sanoid Cron Scripts become: true ansible.builtin.template: src: sanoid-cron.sh dest: /usr/local/bin/sanoid-cron.sh owner: root group: root mode: 0755 - name: Configure Sanoid Cron Job become: true ansible.builtin.cron: name: sanoid-cron job: /usr/local/bin/sanoid-cron.sh minute: "{{ sanoid_cron_minutes }}" hour: "{{ sanoid_cron_hours }}" user: root state: present