--- - block: - name: Install requirements package: name: "{{ item }}" state: present loop: "{{ lvm_packages }}" - name: Create volume group 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 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 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 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 %}" become: True become_user: root