xoxys.lvm/tasks/main.yml

47 lines
1.5 KiB
YAML

---
- name: Install requirements
ansible.builtin.package:
name: "{{ item }}"
state: present
loop: "{{ lvm_packages }}"
- name: Create volume group
community.general.lvg:
vg: "{{ item.group }}"
pvs: "{{ item.disks | join(',') }}"
pesize: "4"
pvresize: yes
loop: "{{ lvm_volumes }}"
loop_control:
label: "name: {{ item.group }}, disks: {{ item.disks | join(',') }}"
- name: Create logical volume
community.general.lvol:
vg: "{{ item.group }}"
lv: "{{ item.name }}"
size: "{{ item.size }}"
resizefs: "{{ item.resizefs | default(True) }}"
state: present
loop: "{{ lvm_volumes }}"
loop_control:
label: "name: {{ item.group }}, size: {{ item.size }}"
- name: Create filesystem
community.general.filesystem:
fstype: "{{ item.fstype | default('ext4') }}"
dev: "/dev/mapper/{{ item.group }}-{{ item.name }}"
loop: "{{ lvm_volumes }}"
loop_control:
label: "device: /dev/mapper/{{ item.group }}-{{ item.name }}, fstype: {{ item.fstype | default('ext4') }}"
- name: Mount volume
ansible.posix.mount:
path: "{{ item.mountpoint }}"
src: "/dev/mapper/{{ item.group }}-{{ item.name }}"
fstype: "{{ item.fstype | default('ext4') }}"
opts: "{{ item.mountopts | default([]) | join(',') or omit }}"
state: "{{ item.state | default('mounted') }}"
loop: "{{ lvm_volumes }}"
loop_control:
label: "mount: /dev/mapper/{{ item.group }}-{{ item.name }} {{ item.mountpoint }} {{ item.fstype | default('ext4') }}{% if item.mountopts is defined %} {{ item.mountopts | join(',') }}{% endif %}"