懂的都懂,上模板
- name: Setup LVM PV VG
hosts: 192.168.1.2
#hosts: all
gather_facts: True
vars:
mntp: "/data"
vgname: "datavg"
pvname: "/dev/vdb"
lvname: "datalv"
vgfree: "2000"
tasks:
- name: pvcreate
shell: "pvcreate {{pvname}}"
when:
- ansible_lvm["pvs"]["{{pvname}}"] is not defined
- name: Check for "{{vgname}}" VG
shell: "vgcreate {{vgname}} {{pvname}} && sleep 10"
when:
- ansible_lvm["vgs"]["{{vgname}}"] is not defined
- name: gather facts
setup:
- name: "Check for {{vgname}} VG Size of {{vgfree}}GiB"
fail:
msg: 'vg free_g < {{vgfree}}'
when:
- ansible_facts['lvm']['vgs']['{{vgname}}']['free_g'] | int < {{vgfree}}
- name: Create LVM and Filesystem and Mount
block:
- name: "Create {{vgfree}}GiB LVM on {{vgname}} VG"
lvol:
lv: "{{lvname}}"
vg: "{{vgname}}"
size: "+100%FREE"
#rescue:
# - name: Fall back and Create 2000GiB LVM on databin VG
# lvol:
# size: "+100%FREE"
# vg: "{{vgname}}"
# lv: "{{lvname}}"
always:
- name: Set Filesystem
filesystem:
dev: "/dev/{{vgname}}/{{lvname}}"
fstype: xfs
- name: Mount LV
mount:
path: "{{mntp}}"
src: "/dev/{{vgname}}/{{lvname}}"
fstype: xfs
state: mounted