如何在Ansible旧社区版中筛选包含TEST的列表项?
解决方案
直接使用select过滤器结合search测试来筛选包含"TEST"的列表项,适配旧版Ansible:
- debug: msg: "{{ cluster_info.clusters.keys() | list | select('search', 'TEST') | list }}"
说明:
cluster_info.clusters.keys() | list:保留你原本获取字典键列表的逻辑select('search', 'TEST'):对列表中每个字符串元素,检查是否包含"TEST"子串(search默认区分大小写)- 末尾的
| list:将筛选后的结果转换为标准列表格式输出
如果需要不区分大小写的筛选,可调整为:
- debug: msg: "{{ cluster_info.clusters.keys() | list | select('search', 'test', ignorecase=True) | list }}"
注:你之前尝试的selectattr是用于筛选字典对象的属性字段,不适合直接处理纯字符串列表,因此无法生效。
内容的提问来源于stack exchange,提问作者pugazhendhi_r
相关产品推荐
相关产品推荐

