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

如何在Ansible中提取主机组列表的最后两个元素?

Ansible 提取主机组最后两个成员的方法

直接利用Python列表的负索引切片就能解决这个问题,不用关心主机组的长度(只要满足你说的至少3个元素的前提)。

把原来的groups['server'][1:3]改成groups['server'][-2:]即可:

- name: 设置负载均衡主机变量
  set_fact:
    loadbalancer_hosts: "{{ groups['server'][-2:] }}"

原理说明

  • 列表的负索引从末尾开始计数:-1代表最后一个元素,-2代表倒数第二个元素
  • 切片[-2:]表示从倒数第二个元素开始,一直取到列表最后一个元素,不管列表总长度如何,都会自动获取最新的最后两个成员

比如你的主机组server新增chaos后,这个切片会自动返回cerus和chaos,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:38:09