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

Ansible中rescue段未执行排查:为何未创建800MiB逻辑卷

问题分析与解决

你的rescue段未执行的核心原因是:Ansible的rescue仅在对应block内有任务执行失败时才会触发,而你当前block里的两个任务都只是被跳过,并未产生失败。

具体细节:

  • 第一个debug任务:when: ansible_lvm.vgs.research is not defined,但你的节点已定义该卷组,条件不满足,任务直接跳过,无失败。
  • 第二个lvol任务:when: ansible_lvm.vgs.research is defined and ansible_lvm.vgs.research.size_g > '1500 MiB',你的节点空间低于1500MiB,条件不满足,任务同样跳过,无失败。

整个block没有任务抛出失败,rescue自然不会启动。

修正方案

你不需要依赖block/rescue实现这个逻辑,直接用条件分支处理两种空间情况即可,这种方式更清晰直观:

---
- name: Criar lvm no sistema
  hosts: all
  become: true
  tasks:
    - name: Verificar se existe o volume group RESEARCH
      ansible.builtin.debug:
        msg: "O grupo de volume RESEARCH não existe"
      when: ansible_lvm.vgs.research is not defined

    - name: Criar logical volume de 1500 MiB (空间充足时)
      community.general.lvol:
        vg: research
        lv: data
        size: 1500m
      when: ansible_lvm.vgs.research is defined and ansible_lvm.vgs.research.size_g > '1500 MiB'

    - name: Criar logical volume de 800 MiB (空间不足时)
      community.general.lvol:
        vg: research
        lv: data
        size: 800m
      when: ansible_lvm.vgs.research is defined and ansible_lvm.vgs.research.size_g < '1500 MiB'

如果非要用block/rescue的话,需要让block内的lvol任务在空间不足时强制执行并失败,触发rescue:

---
- name: Criar lvm no sistema
  hosts: all
  become: true
  tasks:
    - name: Verificar e criar lvm no volume group RESEARCH
      block:
        - name: Se o grupo de volume não existir, uma mensagem de alerta será dada
          ansible.builtin.debug:
            msg: "O grupo de volume RESEARCH não existe"
          when: ansible_lvm.vgs.research is not defined

        - name: Tentar criar logical volume de 1500 MiB
          community.general.lvol:
            vg: research
            lv: data
            size: 1500m
          when: ansible_lvm.vgs.research is defined
      rescue:
        - name: Criar logical volume de 800 MiB (空间不足时触发)
          community.general.lvol:
            vg: research
            lv: data
            size: 800m
          when: ansible_lvm.vgs.research is defined

注:第二种方式依赖lvol模块在空间不足时返回失败状态,这符合模块的预期行为——当无法满足指定大小的创建请求时,模块会抛出失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:12:44