68 lines
2.4 KiB
YAML
68 lines
2.4 KiB
YAML
---
|
|
- name: Linux based installation
|
|
block:
|
|
- 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.deps[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.deps[ansible_os_family] }}"
|
|
become: true
|
|
|
|
- name: append to pkgs
|
|
ansible.builtin.set_fact:
|
|
syspkgs: "{{ syspkgs + pkgconfig.zfs.pkgs[ansible_os_family] }}"
|
|
become: true
|
|
when: ansible_os_family != 'Darwin'
|
|
|
|
- name: append to caskpkgs
|
|
ansible.builtin.set_fact:
|
|
caskpkgs: "{{ caskpkgs + [ 'openzfs' ] }}"
|
|
when: ansible_os_family == 'Darwin'
|