- if config is needed, it has a file in vars/ - all imported vars for pkgs are namespaced with _<pkgname>
76 lines
2.2 KiB
YAML
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
|