下面的剧本工作正常,但是如果我运行lsscsi命令,/ u01始终是LUN 0(/ dev / sdc),并且/ ora01应该是LUN1(/ dev / sdd),/ data应该是LUN2(/ dev / sde)。这里的问题是有时会被交换。 / ora01将是LUN2&/ data将是LUN1。请对此提供建议。
tasks:
- name: vgcreate
lvg:
vg: "{{ item.vgname }}"
pvs: "{{ item.pvsdisk }}"
with_items:
- { vgname: u01, pvsdisk: /dev/sdc }
- { vgname: ora01, pvsdisk: /dev/sdd }
- { vgname: data, pvsdisk: /dev/sde }
- name: lvcreate
lvol:
vg: "{{ item.vgname }}"
lv: "{{ item.lvname }}"
size: 100%VG
with_items:
- { vgname: u01, lvname: lgvol_1 }
- { vgname: ora01, lvname: lgvol_2 }
- { vgname: data, lvname: lgvol_3 }
- name: create file system
filesystem:
fstype: ext4
dev: /dev/{{ item.vgname }}/{{ item.lvname }}
with_items:
- { vgname: u01, lvname: lgvol_1 }
- { vgname: ora01, lvname: lgvol_2 }
- { vgname: data, lvname: lgvol_3 }
- name: mount logical volume
mount:
name: /{{ item.vgname }}
src: /dev/{{ item.vgname }}/{{ item.lvname }}
fstype: ext4
state: mounted
with_items:
- { vgname: u01, lvname: lgvol_1 }
- { vgname: ora01, lvname: lgvol_2 }
- { vgname: data, lvname: lgvol_3 }
答案 0 :(得分:1)
这不是Ansible。您遇到的问题是设备名称'/ dev / sda'等不是永久的。它们是按照出现顺序分配的,因此,如果此顺序不同,则会以不同的名称列出设备。 IRL的“ sda”方法存在更多问题,例如如果某些设备由于错误而断开连接(在ISCSI情况下超时),然后在以后重新连接,则可以获取新名称(例如/dev/sdg
)。在内核内部深处将有/ dev / sda(不可见但已占用)和/ dev / sdg-同一设备但名称不同。
TL; DR;如果顺序对您很重要,请不要依赖/ dev / sd *表示法。将其视为分配了随机名称的磁盘“集合”。
如果需要选择特定的设备,则需要找到不变的(肯定是该设备具有的东西)。几种选择:
可以通过/ dev / disk / by- *进行某些标识:
有些需要非常周到的搜索过程(与标识进行探测)。您可能需要研究几种工具的输出:
甚至可以窥视每个设备中的/ sys / block和符号链接。
基本上,问题几乎与某些人将驱动器随机插入新计算机一样。哪个驱动器是干什么的?