91 lines
2.3 KiB
YAML
91 lines
2.3 KiB
YAML
---
|
|
- name: install zfs prerequisites
|
|
become: true
|
|
community.general.pacman:
|
|
name: "{{ zfs_prereq_packages }}"
|
|
state: latest
|
|
update_cache: true
|
|
when:
|
|
- ansible_os_family == 'Arch'
|
|
|
|
- name: add gpg parameters file from template
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: key-params.j2
|
|
dest: /root/key-params
|
|
owner: root
|
|
group: root
|
|
mode: 0660
|
|
|
|
- name: generate gpg key for root
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: gpg --batch --gen-key /root/key-params
|
|
|
|
- name: import zfs signing key
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: gpg --receive-keys {{ aur_zfs_key_fingerprint|quote }}
|
|
|
|
- name: trust zfs signing key
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: gpg --quick-lsign-key {{ aur_zfs_key_fingerprint|quote }}
|
|
|
|
- name: install zfs module
|
|
become: true
|
|
community.general.pacman:
|
|
executable: /usr/bin/pikaur
|
|
name: "{{ zfs_packages }}"
|
|
state: latest
|
|
update_cache: true
|
|
when:
|
|
- ansible_os_family == 'Arch'
|
|
|
|
- name: set zfs module parameters
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: zfs.conf.j2
|
|
dest: /etc/modprobe.d/zfs.conf
|
|
owner: root
|
|
group: root
|
|
mode: 0664
|
|
|
|
- name: load zfs module
|
|
become: true
|
|
community.general.modprobe:
|
|
name: zfs
|
|
state: present
|
|
|
|
- name: create zpool
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: zpool create -o ashift={{ zfs_zpool_ashift|quote }} -o autotrim=on -o cachefile=/etc/zfs/zpool.cache -O acltype=posixacl -O atime=off -O xattr=sa -O mountpoint=none -O canmount=off -O devices=off -O compression={{ zfs_zpool_compression|quote }} {{ zfs_zpool_name|quote }} {{ zfs_zpool_type|quote }} {{ zfs_zpool_disk_a|quote }} {{ zfs_zpool_disk_b|quote }}
|
|
|
|
- name: enable zfs services
|
|
become: true
|
|
ansible.builtin.service:
|
|
name: "{{ item }}"
|
|
state: started
|
|
enabled: yes
|
|
loop:
|
|
- zfs-import-cache.service
|
|
- zfs-mount.service
|
|
- zfs.target
|
|
|
|
- name: create backup zfs dataset
|
|
community.general.zfs:
|
|
name: "{{ zfs_backup_dataset }}"
|
|
state: present
|
|
extra_zfs_properties:
|
|
canmount: off
|
|
mountpoint: none
|
|
primarycache: none
|
|
secondarycache: none
|
|
reservation: none
|
|
refreservation: none
|
|
dedup: off
|
|
encryption: off
|
|
volmode: dev
|
|
devices: off
|
|
atime: off |