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

如何用Ansible仅列出可用安全补丁的名称?

问题描述

我想用Ansible列出可用的安全补丁,但只需要获取补丁名称,期望输出类似:

name: python_patch33.21
name: java21.21.2

但执行任务后得到的是包含完整字段的结果:

16:10:47 [0;32m{'results': [{'envra': '0:kernel-3.10.0-1160.80.1.el7.x86_64', 'name': 'kernel', 'repo': 'rhui-rhel-7-server-rhui-rpms', 'epoch': '0', 'version': '3.10.0', 'release': '1160.80.1.el7', 'yumstate': 'available', 'arch': 'x86_64'}, {'envra': '0:python-perf-3.10.0-1160.80.1.el7.x86_64', 'name': 'python-perf', 'repo': 'rhui-rhel-7-server-rhui-rpms', 'epoch': '0', 'version': '3.10.0', 'release': '1160.80.1.el7', 'yumstate': 'available', 'arch': 'x86_64'}, {'envra': '0:tzdata-2022f-1.el7.noarch', 'name': 'tzdata', 'repo': 'rhui-rhel-7-server-rhui-rpms', 'epoch': '0', 'version': '2022f', 'release': '1.el7', 'yumstate': 'available', 'arch': 'noarch'}], 'failed': False, 'changed': False}[0m

当前使用的Ansible任务:

- yum:
        list: updates
        update_cache: true
        exclude: kernel*
        security: true
      register: yumoutput
    
    - name: Show result
      debug:
        msg: "{{ yumoutput.results }}"

请问如何修改任务以仅获取安全补丁的名称列表?


解决方案

可以利用Ansible的Jinja2过滤器处理返回数据,只提取每个补丁的name字段,有两种输出格式可选:

1. 输出名称列表

如果只需要纯名称的列表形式,修改后的任务如下:

- yum:
        list: updates
        update_cache: true
        exclude: kernel*
        security: true
      register: yumoutput
    
    - name: Show security patch names
      debug:
        msg: "{{ yumoutput.results | map(attribute='name') | list }}"

2. 输出name: xxx格式

如果要匹配你示例中的键值对格式,可调整为:

- yum:
        list: updates
        update_cache: true
        exclude: kernel*
        security: true
      register: yumoutput
    
    - name: Show security patch names in desired format
      debug:
        msg: "name: {{ item }}"
      loop: "{{ yumoutput.results | map(attribute='name') | list }}"

关键说明

  • map(attribute='name'):从每个结果对象中提取name属性的值
  • list:将map转换为标准列表格式
  • 第二种方案通过loop遍历名称列表,直接拼接出你需要的name: xxx格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:15:33