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

Ansible assert模块如何为字符串校验配置OR或判断条件

Ansible assert模块多条件或判断实现方案

你需要把「匹配Nexus 56」和「匹配Nexus 60」的逻辑放在同一个that条件项中,用or运算符连接即可。Ansible的assert模块中,that数组下的多个条件默认是逻辑与关系,必须全部满足才会校验通过,同一项内的or则代表逻辑或。

写法1:直观OR运算符写法

最容易理解的写法,直接拼接两个匹配规则:

- assert:
        that:
          - "'Nexus 56' in version_output['stdout'][0]['chassis_id'] or 'Nexus 60' in version_output['stdout'][0]['chassis_id']"
          - "'n6000' in version_output['stdout'][0]['isan_file_name']"
        fail_msg: "当前设备不是N5600/N6000系列机型"
        success_msg: "当前设备是N5600/N6000系列机型"

写法2:正则简化写法

如果后续需要扩展更多匹配机型,用正则写法更易维护:

- assert:
        that:
          - version_output['stdout'][0]['chassis_id'] is search('Nexus (56|60)')
          - "'n6000' in version_output['stdout'][0]['isan_file_name']"
        fail_msg: "当前设备不是N5600/N6000系列机型"
        success_msg: "当前设备是N5600/N6000系列机型"

如果不需要修改提示语为中文,保留原来的英文fail_msg和success_msg即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:06:04