Files
ansible_role_package/tasks/pkgs/zfs.yml
2025-01-25 21:16:59 -07:00

66 lines
2.1 KiB
YAML

---
- 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