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

AWX Playbook运行时如何安装使用Ansible win_updates集合?

解决方案

1. 正确获取已安装Windows更新列表

你要的是查询已安装更新,不是安装更新,ansible.windows.win_updates默认是执行安装操作,得调整参数改成仅查询:

- name: 检查Windows已安装更新
  hosts: windows_servers
  gather_facts: true
  tasks:
    - name: 查询已安装更新清单
      ansible.windows.win_updates:
        state: installed
        list_only: yes
      register: installed_updates

    - name: 输出已安装更新详情
      debug:
        var: installed_updates.installed

这里state: installed指定目标为已安装更新,list_only: yes表示只罗列结果不执行安装,最后用register把结果存下来,通过debug输出。

2. AWX中处理集合依赖

你说不会用requirements.yml,在AWX里这么操作:

  • 先在项目根目录创建requirements.yml,内容:
    collections:
      - name: ansible.windows
        version: latest # 也可以写具体版本号,比如2.1.0
    
  • 打开AWX的项目设置,找到「更新选项」,勾选「从requirements.yml安装集合」,这样每次AWX拉取项目代码时,会自动安装所需的ansible.windows集合。

如果是手动上传Playbook到AWX,也可以先在本地执行ansible-galaxy collection install ansible.windows,把本地~/.ansible/collections/ansible_collections/ansible/windows目录和Playbook打包一起上传,AWX就能找到模块。

3. 排查role调用失败的问题

你之前用roles: - ansible.windows.win_updates是错的——ansible.windows.win_updates是模块不是role,ansible.windows集合里没有对应的role,必须用tasks调用模块,不能用role方式加载。

4. 测试覆盖率补充建议

要满足测试要求,除了更新检查,还可以加这些测试项:

  • 检查必备Windows服务(比如Remote Desktop、WinRM)是否处于运行状态
  • 验证系统版本、OS补丁级别是否符合部署标准
  • 检查磁盘剩余空间、内存使用率是否达标
  • 测试虚拟机网络连通性(比如能否访问指定业务端口)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:10:00