Hello,
I'm pretty new in ansible, so excuse me for this (stupid?) question, but it bothers me.
I'm trying to set up LVM on the remote host with ansible.
Here is my role:
---
- name: install lvm2
 yum:
  name: "{{ item }}"
  state: present
 with_items:
  - lvm2
 tags:
  - install
- name: select a drive for LVM
 shell: "fdisk -l |grep vdb | awk '{print $2}'"
 register: drive_for_lvm
 tags:
  - configure
- set_fact:
  drive_for_lvm: "{{ drive_for_lvm.stdout_lines }}"
 tags:
  - configure
- set_fact:
  drive_for_lvm: "{{ drive_for_lvm|replace(':','') }}"
 tags:
  - configure
############################## ADD LVM ###########################
- name: create VG
 lvg:
  vg: vg_test
  pvs: "{{ drive_for_lvm }}"
  pesize: 16
 tags:
  - configure
- name: create LV
 lvol:
  vg: vg_test
  lv: lv_test
  size: 100%FREE
  pvs: "{{ drive_for_lvm }}"
 tags:
  - configure
When I execute it, I've got this:
root@ubuntu-latest:~/ansible# ansible-playbook -i group_vars/ playbook.yml --skip-tags=install
PLAY [test] ********************************************************************************************************************************
TASK [lvm : select a drive for LVM] ********************************************************************************************************
changed: [docker2]
TASK [lvm : set_fact] **********************************************************************************************************************
ok: [docker2]
TASK [lvm : set_fact] **********************************************************************************************************************
ok: [docker2]
TASK [lvm : create VG] *********************************************************************************************************************
changed: [docker2]
TASK [lvm : create LV] *********************************************************************************************************************
fatal: [docker2]: FAILED! => {"changed": false, "err": " Â Physical Volume \"[/dev/vdb]\" not found in Volume Group \"vg_test\".\n", "msg": "Creating logical volume 'lv_test' failed", "rc": 5}
Then, I verified the host called "docker2" if it contains PVS /dev/vdb (and it does).
[root@docker2 ~]# pvs |grep vdb
 /dev/vdb  vg_test lvm2 a--  4.98g 4.98g
So why ansible says that there is no such physical volume?
I finally edited main.yml inside the role (just commented out pvs section in last task):
- name: create VG
 lvg:
  vg: vg_test
  pvs: "{{ drive_for_lvm }}"
  pesize: 16
 tags:
  - configure
- name: create LV
 lvol:
  vg: vg_test
  lv: lv_test
  size: 100%FREE
# Â Â pvs: "{{ drive_for_lvm }}"
 tags:
  - configure
And it works as expected.. Can somebody explain the difference? It is a bug or what?
Best regards!