packages are more generic

- if config is needed, it has a file in vars/
- all imported vars for pkgs are namespaced with _<pkgname>
This commit is contained in:
Matthew Stobbs
2025-01-23 00:29:58 -07:00
parent 6fa5a46701
commit 0f2d22f3c5
76 changed files with 277 additions and 594 deletions

View File

@@ -1,64 +1,74 @@
---
- name: set rpm_dist
ansible.builtin.command: rpm --eval "%{dist}"
register: rpm_dist
tags:
- packages
- RedHat
- config
- ansible.builtin.include_vars:
file: zfs.yml
name: _zfs
- name: set zfs repo facts
set_fact:
zfs_repo_base: https://zfsonlinux.org
zfs_gpg_key: https://raw.githubusercontent.com/zfsonlinux/zfsonlinux.github.com/master/zfs-release/RPM-GPG-KEY-openzfs-key2
zfs_gpg_key_fingerprint: 7DC7 299D CF7C 7FD9 CD87 701B A599 FD5E 9DB8 4141
- name: el9+ specific configuration
- name: RedHat based configuration
when: ansible_os_family == 'RedHat'
block:
- name: set el9+ facts
set_fact:
rh_release: epel
zfs_release: 2-3
when:
- ansible_distribution != 'Fedora'
# TODO: figure out a better way to identify EPEL based distros
# TODO: Alma, rocky, centos, rhel
tags:
- packages
- RedHat
- config
- 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: Fedora specific configuration
- 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: set fedora facts
set_fact:
rh_release: fedora
zfs_release: 2-6
when: ansible_distribution == 'Fedora'
when: ansible_distribution == 'Fedora'
- 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: 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: 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: enable openzfs repository
ansible.builtin.dnf:
name: "{{ zfs_repo_base }}{{ rh_release }}/zfs-release-{{ zfs_release }}{{ rpm_dist.stdout }}.noarch.rpm"
state: "{{ install_state }}"
become: true
tags:
- packages
- RedHat
- 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' ] }}"
syspkgs: "{{ syspkgs + _zfs[ansible_os_family].pkgs }}"
become: true
tags:
- RedHat