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

使用Ansible调用yum模块获取更新列表失败,提示register参数不支持

解决Ansible yum模块"Unsupported parameters for (yum) module: register"错误

问题原因

你碰到的这个错误根源很明确:register是Ansible里任务级别的关键字,作用是捕获整个任务的执行结果,它不属于yum模块本身的参数。你把它和list、exclude这些模块专属参数放在一起,自然会触发"参数不支持"的报错。

修正后的Playbook

只需要把register移到任务级别,和name、yum模块定义平级,就能正常运行了:

- hosts: all
  gather_facts: false
  become: yes
  user: username
  tasks:
    - name: List Available Patches (Non-Kernel)
      yum:
        list: updates
        update_cache: true
        exclude: kernel*
      register: yumoutput  # 移到此处,与yum模块同级
    - debug:
        msg: "{{ inventory_hostname }}: {{ yumoutput.results }}"

可读性优化提示

如果直接输出yumoutput.results显得太杂乱,你可以用循环逐个打印每个可更新包的详细信息,可读性会好很多:

- hosts: all
  gather_facts: false
  become: yes
  user: username
  tasks:
    - name: List Available Patches (Non-Kernel)
      yum:
        list: updates
        update_cache: true
        exclude: kernel*
      register: yumoutput
    - name: Print non-kernel updates
      debug:
        msg: "{{ inventory_hostname }}: {{ item.name }} - {{ item.version }}.{{ item.release }}"
      loop: "{{ yumoutput.results }}"
      when: yumoutput.results | length > 0

这个修正方案在你使用的Ansible 2.6.5和2.7.5版本中都能正常生效,因为这两个版本对任务关键字和模块参数的区分规则是一致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:30:02