Files
ansible_role_package/tasks/pkgs/zfs.yml
Matthew Stobbs 0f2d22f3c5 packages are more generic
- if config is needed, it has a file in vars/
- all imported vars for pkgs are namespaced with _<pkgname>
2025-01-23 00:29:58 -07:00

76 lines
2.2 KiB
YAML

---
- ansible.builtin.include_vars:
file: zfs.yml
name: _zfs
- name: RedHat based configuration
when: ansible_os_family == 'RedHat'
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: "{{ _zfs.gpg_key }}"
fingerprint: "{{ _zfs.gpg_key_fingerprint }}"
state: present
become: true
tags:
- packages
- RedHat
- name: enable openzfs repository
ansible.builtin.dnf:
name: "{{ _zfs.repo_base }}{{ rhname }}/zfs-release-{{ _zfs[rhname].release }}{{ rpm_dist.stdout }}.noarch.rpm"
state: "{{ install_state }}"
become: true
tags:
- packages
- RedHat
- name: install zfs deps
ansible.builtin.dnf:
name: "{{ _zfs[ansible_os_family].deppkgs }}"
state: "{{ install_state }}"
become: true
- name: Debian configuration
when: ansible_os_family == 'Debian'
block:
- name: enable openzfs repository
become: true
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
- name: pin zfs package to backports
become: true
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
- name: install zfs deps
become: true
ansible.builtin.apt:
name: "{{ _zfs[ansible_os_family].deppkgs }}"
state: "{{ install_state }}"
- name: append to pkgs
set_fact:
syspkgs: "{{ syspkgs + _zfs[ansible_os_family].pkgs }}"
become: true
tags:
- RedHat
- packages