..
2025-07-01 17:29:30 +00:00
2025-04-26 01:30:44 -04:00
2025-07-10 02:07:55 -04:00

OS Disk Role

Manages LVM (Logical Volume Management) setup for Debian systems, including volume groups, logical volumes, filesystem creation, and mounting.

What it does

This role:

  • Installs LVM2 and parted packages
  • Deploys a disk detection script (setup_lvm_devices.sh) for automatic device initialization
  • Creates and manages volume groups (VGs) from physical devices
  • Creates logical volumes (LVs) with specified sizes
  • Formats logical volumes with filesystems
  • Mounts logical volumes and adds entries to /etc/fstab

Variables

disks_vg (list)

List of volume group configurations.

Structure:

disks_vg:
  - vg: string          # Volume group name
    state: string       # present (default) | absent
    devices_dev: list   # List of device paths (e.g., ['/dev/vda', '/dev/vdb'])

disks_lv (list)

List of logical volume configurations.

Structure:

disks_lv:
  - lv: string          # Logical volume name
    vg: string          # Volume group name (must exist in disks_vg)
    size: string        # Size with unit (e.g., '20G', '500M')
    state: string       # present (mounted) | absent (destroyed)
    fstype: string      # Filesystem type (default: ext4)

Notes:

  • Mount path is automatically derived from LV name: /{{ lv | replace('_', '/') }}
  • Example: LV name var_lib_docker mounts to /var/lib/docker

Examples

Basic LVM setup with single volume group

disks_vg:
  - vg: data
    devices_dev:
      - /dev/vda
      - /dev/vdb

disks_lv:
  - lv: var_lib_docker
    vg: data
    size: 20G
    fstype: ext4
  - lv: var_log
    vg: data
    size: 5G
    fstype: xfs

Multiple volume groups with different states

disks_vg:
  - vg: data
    state: present
    devices_dev:
      - /dev/vda
  - vg: backup
    state: present
    devices_dev:
      - /dev/vdc

disks_lv:
  - lv: var_lib_docker
    vg: data
    size: 20G
    state: present
    fstype: ext4
  - lv: backup_storage
    vg: backup
    size: 100G
    state: present
    fstype: ext4

Removing logical volumes

disks_lv:
  - lv: old_data
    vg: data
    size: 10G
    state: absent  # Will unmount and destroy the LV