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

如何在Ansible循环中遍历列表的每两个元素?

解决方案

可以使用Ansible内置的batch过滤器,将磁盘列表按每2个元素一组拆分,再循环处理每组数据。

完整Playbook示例

---
- hosts: all
  vars:
    disks:
      - sdc
      - sdd
      - sde
      - sdf
  tasks:
    - name: 每次迭代处理两个磁盘的组合
      shell: echo '/dev/{{ item[0] }} + /dev/{{ item[1] }}'
      loop: "{{ disks | batch(2) }}"

关键说明

  • batch(2)过滤器会把原列表拆分为多个长度为2的子列表,示例中的列表拆分后结果为[['sdc', 'sdd'], ['sde', 'sdf']]
  • 循环时item变量对应单个子列表,通过item[0]和item[1]可分别获取组内的两个磁盘名称
  • 执行后第一次循环输出/dev/sdc + /dev/sdd,第二次输出/dev/sde + /dev/sdf,完全匹配需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:15:54