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

如何从F5 bigip_command模块的stdout结果中过滤提取pool名称

你可以直接通过Ansible内置的regex_findall过滤器匹配提取所有pool名称,在你现有任务流程的末尾新增以下任务即可:

# 遍历所有policy的查询结果,提取pool名称
- name: 提取pool名称
  set_fact:
    all_pools: "{{ all_pools | default([]) + (item.stdout[0] | regex_findall('pool\\s+(\\S+)')) }}"
  loop: "{{ layer7_pools.results }}"
# 可选:对pool列表做去重、拍平处理,避免同一个pool被多条规则匹配导致重复
- name: 整理pool列表
  set_fact:
    valid_pools: "{{ all_pools | flatten | unique }}"
# 打印最终结果
- name: 输出提取到的所有pool名称
  debug:
    msg: "{{ valid_pools }}"

逻辑说明

  • 正则表达式pool\s+(\S+)会匹配所有以pool 开头的内容,捕获pool关键字后面的非空白字符,也就是pool的名称
  • 遍历layer7_pools.results列表,每个元素对应你之前循环查询的单个policy的返回结果,从每个结果的stdout[0]字段里匹配pool名称
  • 最终通过flatten拍平可能的嵌套结构,unique过滤重复的pool名称
    按照你提供的示例返回结果,最终提取到的pool列表为:["policy_test.net_pool1", "policy_test.net_pool2"]
    内容的提问来源于stack exchange,提问作者SDay
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:15:03