You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible任务中拼接的LVM变量debug可显示但lvol模块不解析

问题原因

你当前的写法是将vg_command赋值为了变量名的字符串形式,而非变量解析后的实际值:

  • debug模块的var参数特殊设计为接收变量名称字符串,内部会自动解析对应变量取数值,所以你之前的测试步骤可以正常输出vg_00
  • 其余模块的普通参数不会做这种自动二次解析,因此会把你拼接的字符串直接传给vg参数,导致报VG名称非法的错误

解决方案

直接用方括号语法访问LVM事实的动态键,一步拿到实际的VG名称值即可,不需要拼接变量名字符串:

tasks:
  - set_fact:
      LV_name: "opt"
  - name: 获取VG名称
    set_fact:
      vg_name: "{{ hostvars[inventory_hostname].ansible_lvm.lvs[LV_name].vg }}"

  - name: 输出VG名称验证
    debug:
      var: vg_name

  - name: 扩展逻辑卷和文件系统
    community.general.lvol:
      vg: "{{ vg_name }}"
      lv: "{{ LV_name }}"
      size: +100%FREE
      resizefs: yes

修改后vg_name存储的就是解析完成的实际VG名称字符串,传给lvol模块就能正常识别执行。

内容的提问来源于stack exchange,提问作者Manii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:48:02