--- - ansible.builtin.include_vars: file: zfs.yml name: _zfs - ansible.builtin.set_fact: pkgconfig_zfs: "{{ _zfs | ansible.builtin.combine(pkgconfig.zfs) }}" - name: RedHat based configuration block: - ansible.builtin.set_fact: rhname: "{%if ansible_distribution == 'Fedora' %}fedora{% else %}epel{% endif %}" - ansible.builtin.command: cmd: rpm --eval "%{dist}" register: rpm_dist - name: add openzfs gpg_key ansible.builtin.rpm_key: key: "{{ pkgconfig_zfs.gpg_key }}" fingerprint: "{{ pkgconfig_zfs.gpg_key_fingerprint }}" state: present become: true - name: enable openzfs repository ansible.builtin.dnf: name: "{{ pkgconfig_zfs.repo_base }}{{ rhname }}/zfs-release-{{ pkgconfig_zfs[rhname].release }}{{ rpm_dist.stdout }}.noarch.rpm" state: "{{ install_state }}" become: true - name: install zfs deps ansible.builtin.set_fact: syspkgs: "{{ pkgconfig_zfs.deppkgs[ansible_os_family] }}" when: ansible_os_family == 'RedHat' - name: Debian configuration when: ansible_os_family == 'Debian' block: - name: enable openzfs repository ansible.builtin.apt_repository: repo: | deb http://deb.debian.org/debian {{ ansible_distribution_release }}-backports main contrib deb-src http://deb.debian.org/debian {{ ansible_distribution_release }}-backports main contrib filename: "{{ ansible_distribution_release }}-backports" state: present update_cache: false become: true - name: pin zfs package to backports ansible.builtin.file: content: | Package: src:zfs-linux Pin: release n={{ ansible_distribution_release }}-backports Pin-Priority: 990 dest: /etc/apt/preferences.d/90_zfs state: present become: true - name: install zfs deps ansible.builtin.set_fact: syspkgs: "{{ pkgconfig_zfs.deppkgs[ansible_os_family] }}" become: true - name: append to pkgs ansible.builtin.set_fact: syspkgs: "{{ syspkgs + pkgconfig_zfs.pkgs[ansible_os_family] }}" become: true