zfs_datasets: Unterstützt jetzt alle Parameter (#284)
Co-authored-by: Michael Grote <michael.grote@posteo.de> Reviewed-on: mg/ansible#284 Co-authored-by: mg <michael.grote@posteo.de> Co-committed-by: mg <michael.grote@posteo.de>
This commit is contained in:
parent
5c67dc8e30
commit
c8a79e890c
2 changed files with 71 additions and 46 deletions
|
@ -1,37 +1,27 @@
|
||||||
## mgrote.zfs_manage_datasets
|
## mgrote.zfs_manage_datasets
|
||||||
|
|
||||||
### Beschreibung
|
### Description
|
||||||
Erstellt Datasets/setzt Optionen pro Dataset.
|
Creates Datasets, can set options.
|
||||||
Kann Datasets löschen.
|
This role does not create the pools.
|
||||||
Die Pools müssen vorher existieren.
|
Attributes get set `local` per dataset.
|
||||||
Beim ersten ausführen wird es wahrscheinlich zu Status: "changed" kommen, weil:
|
|
||||||
```bash
|
|
||||||
ssd_vm_mirror/vm xattr sa inherited from ssd_vm_mirror
|
|
||||||
ssd_vm_mirror/vm xattr sa local
|
|
||||||
```
|
|
||||||
Die Attribute werden nicht mehr vererbt sondern als "local" gesetzt
|
|
||||||
|
|
||||||
### getestet auf
|
|
||||||
|
### tested on
|
||||||
- [x] ProxMox 6.1
|
- [x] ProxMox 6.1
|
||||||
|
- [x] ProxMox 7*
|
||||||
|
|
||||||
### Variablen + Defaults
|
### Variablen + Defaults
|
||||||
#### Standardwerte
|
- see [default-filter](./tasks/main.yml)
|
||||||
```
|
- all Variables from `man 8 zfs` are optional but not the name(dataset)
|
||||||
state: present
|
|
||||||
compression: lz4
|
#### Example
|
||||||
sync: standard
|
```yaml
|
||||||
xattr: on
|
zfs_datasets:
|
||||||
dnodesize: auto
|
- dataset: rpool/vm
|
||||||
atime: off
|
state: present
|
||||||
snapdir: hidden
|
compression: zstd
|
||||||
```
|
- dataset: tank/vm/dir/fileserver2_test
|
||||||
#### Empfohlen für VMs
|
state: present
|
||||||
```
|
atime: on
|
||||||
state: present
|
snapdir: hidden
|
||||||
compression: lz4
|
|
||||||
sync: disabled
|
|
||||||
xattr: sa
|
|
||||||
dnodesize: auto
|
|
||||||
atime: off
|
|
||||||
snapdir: hidden
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,24 +1,59 @@
|
||||||
---
|
---
|
||||||
- name: create datasets
|
- name: create datasets or set options
|
||||||
become: true
|
|
||||||
community.general.zfs:
|
|
||||||
name: "{{ item.dataset }}"
|
|
||||||
state: "{{ item.state | default('present') }}"
|
|
||||||
loop: "{{ zfs_datasets }}"
|
|
||||||
when: zfs_datasets is defined # führe nur aus wenn die Variable gesetzt ist
|
|
||||||
|
|
||||||
- name: set zfs properties per datasets
|
|
||||||
become: true
|
become: true
|
||||||
community.general.zfs:
|
community.general.zfs:
|
||||||
name: "{{ item.dataset }}"
|
name: "{{ item.dataset }}"
|
||||||
state: "{{ item.state | default('present') }}"
|
state: "{{ item.state | default('present') }}"
|
||||||
extra_zfs_properties:
|
extra_zfs_properties:
|
||||||
compression: "{{ item.compression | default('lz4') }}"
|
quota: "{{ item.quota | default(omit) }}"
|
||||||
sync: "{{ item.sync | default('standard') }}"
|
reservation: "{{ item.reservation | default(omit) }}"
|
||||||
xattr: "{{ item.xattr | default('on') }}"
|
recordsize: "{{ item.recordsize | default(omit) }}"
|
||||||
dnodesize: "{{ item.dnodesize | default('auto') }}"
|
mountpoint: "{{ item.mountpoint | default(omit) }}"
|
||||||
atime: "{{ item.atime | default('off') }}"
|
sharenfs: "{{ item.sharenfs | default(omit) }}"
|
||||||
snapdir: "{{ item.snapdir | default('hidden') }}"
|
checksum: "{{ item.checksum | default(omit) }}"
|
||||||
recordsize: "{{ item.recordsize | default('128K') }}"
|
compression: "{{ item.compression | default(omit) }}"
|
||||||
|
atime: "{{ item.atime | default(omit) }}"
|
||||||
|
devices: "{{ item.devices | default(omit) }}"
|
||||||
|
exec: "{{ item.exec | default(omit) }}"
|
||||||
|
setuid: "{{ item.setuid | default(omit) }}"
|
||||||
|
readonly: "{{ item.readonly | default(omit) }}"
|
||||||
|
zoned: "{{ item.zoned | default(omit) }}"
|
||||||
|
snapdir: "{{ item.snapdir | default(omit) }}"
|
||||||
|
aclmode: "{{ item.aclmode | default(omit) }}"
|
||||||
|
aclinherit: "{{ item.aclinherit | default(omit) }}"
|
||||||
|
canmount: "{{ item.canmount | default(omit) }}"
|
||||||
|
xattr: "{{ item.xattr | default(omit) }}"
|
||||||
|
copies: "{{ item.copies | default(omit) }}"
|
||||||
|
vscan: "{{ item.vscan | default(omit) }}"
|
||||||
|
nbmand: "{{ item.nbmand | default(omit) }}"
|
||||||
|
sharesmb: "{{ item.sharesmb | default(omit) }}"
|
||||||
|
refquota: "{{ item.refquota | default(omit) }}"
|
||||||
|
refreservation: "{{ item.refreservation | default(omit) }}"
|
||||||
|
primarycache: "{{ item.primarycache | default(omit) }}"
|
||||||
|
secondarycache: "{{ item.secondarycache | default(omit) }}"
|
||||||
|
logbias: "{{ item.logbias | default(omit) }}"
|
||||||
|
dedup: "{{ item.dedup | default(omit) }}"
|
||||||
|
mlslabel: "{{ item.mlslabel | default(omit) }}"
|
||||||
|
sync: "{{ item.sync | default(omit) }}"
|
||||||
|
dnodesize: "{{ item.dnodesize | default(omit) }}"
|
||||||
|
volmode: "{{ item.volmode | default(omit) }}"
|
||||||
|
filesystem_limit: "{{ item.filesystem_limit | default(omit) }}"
|
||||||
|
snapshot_limit: "{{ item.snapshot_limit | default(omit) }}"
|
||||||
|
filesystem_count: "{{ item.filesystem_count | default(omit) }}"
|
||||||
|
snapshot_count: "{{ item.snapshot_count | default(omit) }}"
|
||||||
|
snapdev: "{{ item.snapdev | default(omit) }}"
|
||||||
|
acltype: "{{ item.acltype | default(omit) }}"
|
||||||
|
context: "{{ item.context | default(omit) }}"
|
||||||
|
fscontext: "{{ item.fscontext | default(omit) }}"
|
||||||
|
defcontext: "{{ item.defcontext | default(omit) }}"
|
||||||
|
rootcontext: "{{ item.rootcontext | default(omit) }}"
|
||||||
|
relatime: "{{ item.relatime | default(omit) }}"
|
||||||
|
redundant_metadata: "{{ item.redundant_metadata | default(omit) }}"
|
||||||
|
overlay: "{{ item.overlay | default(omit) }}"
|
||||||
|
encryption: "{{ item.encryption | default(omit) }}"
|
||||||
|
keylocation: "{{ item.keylocation | default(omit) }}"
|
||||||
|
keyformat: "{{ item.keyformat | default(omit) }}"
|
||||||
|
pbkdf2iters: "{{ item.pbkdf2iters | default(omit) }}"
|
||||||
|
special_small_blocks: "{{ item.special_small_blocks | default(omit) }}"
|
||||||
loop: "{{ zfs_datasets }}"
|
loop: "{{ zfs_datasets }}"
|
||||||
when: zfs_datasets is defined # führe nur aus wenn die Variable gesetzt ist
|
when: zfs_datasets is defined # führe nur aus wenn die Variable gesetzt ist
|
||||||
|
|
Loading…
Add table
Reference in a new issue