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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user