使用Ansible扩展LVM卷组(VG)时报设备未找到错误的技术咨询
故障根因与修复方案
直接报错原因
你定义的pvname变量中第二个PV路径配置错误:
- 缺少绝对路径前缀
/,写成了dev/sdc1而非/dev/sdc1,相对路径会被Ansible自动拼接执行用户的当前工作目录(本次环境为/home/icc-admin/),最终生成不存在的路径/home/icc-admin/dev/sdc1,直接触发报错。 - 逗号后的多余空格在部分Ansible版本中会被识别为路径的一部分,进一步导致路径匹配失败。
潜在配置风险
- 参数类型不匹配:
community.general.lvg模块的pvs参数标准接收值为列表类型,你当前使用逗号分隔的字符串属于非标准写法,即使修复路径问题,也存在后续解析失败的可能性。 - 变量缩进错误:变量文件中
lvpath字段的缩进层级错误,与lvm_settings下的列表项平级,后续执行LV扩展相关任务时会出现变量无法找到的报错。
修复步骤
- 修正
pvname变量为标准列表格式:
pvname: - /dev/sdb1 - /dev/sdc1
如果需要保留字符串写法,需修正路径和分隔符:
pvname: /dev/sdb1,/dev/sdc1
- 修正
lvm_settings的缩进错误:
lvm_settings: - lv_name: datalv lv_size: +100%FREE fs_name: ansible_fs_test lvpath: /dev/mapper/datavg-datalv
- 可新增前置校验任务,确认PV设备正常创建后再执行VG扩展:
- name: 校验PV设备存在性 stat: path: "{{ item }}" with_items: "{{ pvname }}" register: pv_check_result failed_when: not pv_check_result.stat.exists
内容的提问来源于stack exchange,提问作者cz75ww
相关产品推荐
相关产品推荐

