---
- name: disk addition
hosts: localhost
connection: local
tasks:
- name: Identify exiting disk
shell: lsblk | grep '^[a-z]' | grep -v sr0 | cut -f1 -d' '
register: disk_list1
- name: Scan Storage LUN
shell: for host in `ls /sys/class/scsi_host/`;do echo "- - -" >/sys/class/scsi_host/${host}/scan; done
- name: Identify exiting disk with new disk
shell: lsblk | grep '^[a-z]' | grep -v sr0 | cut -f1 -d' '
register: disk_list2
- debug: var=disk_list2
- set_fact:
new_disk: "{{ disk_list2.stdout_lines | difference(disk) }}"
- name: Search storage LUN ID
shell: ls -la /dev/disk/by-id/ | grep {{ new_disk[0] }} | grep scsi | awk -F'scsi-' '{print $NF}' | cut -f1 -d' '
register: lun_id
when: new_disk[0] is defined
- name: Search Storage NAME DEIVCE PATH
shell: multipath -ll "{{ lun_id.stdout }}" | cut -f1 -d' '
register: device_name
when: lun_id is defined and lun_id.stdout | length > 4
- name: Create a PV
shell: pvcreate /dev/mapper/{{ device_name }}
register: pv_state
when: device_name.stdout is defined
- name: Find VG name
shell: df -hP "{{ filesystem }}" | sed -n '2p' | awk '{print $1}'|awk -F "/" '{print $NF}'|awk -F "-" '{print $(NF -1)}'
register: vg_name
when: pv_state.stdout is defined and pv_state.rc == 0
- name: Extend VG {{ vg_name }}
shell: vgextend {{ vg_name }} /dev/mapper/{{ device_name }}
register: vg_state
when: pv_state.stdout is defined and pv_state.rc == 0