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

如何在Docker部署的AWX 17.0.1中升级Ansible Collection?

解决AWX 17.0.1优先使用最新community.vmware集合的问题

针对你遇到的AWX仍调用内置旧版vmware模块的问题,可按以下步骤逐一排查解决:

1. 确保集合安装到AWX系统级集合目录

AWX任务容器默认优先读取系统级集合目录/usr/share/ansible/collections,而非用户目录~/.ansible/collections。你之前的安装可能路径不对,导致AWX未识别。

  • 进入awx_task容器:
    docker exec -it awx_task /bin/bash
    
  • 安装集合到系统级目录:
    ansible-galaxy collection install community.vmware -p /usr/share/ansible/collections
    
  • 验证安装:
    ansible-galaxy collection list community.vmware
    

2. 剧本中明确使用带命名空间的模块

旧版独立模块vmware_guest和集合模块community.vmware.vmware_guest是两个不同的实体。AWX默认会优先匹配不带命名空间的旧模块,因此必须修改剧本,将模块名替换为带命名空间的版本:

- name: 管理VMware虚拟机
  community.vmware.vmware_guest:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    # 其他参数...

3. 替换内置旧模块(临时应急方案)

如果上述方法未生效,可直接替换AWX内置的旧模块文件(注意:容器重启后会失效,需配合持久化挂载或自定义镜像):

  • 备份旧模块:
    cp /usr/lib/python3.6/site-packages/ansible/modules/cloud/vmware/vmware_guest.py /usr/lib/python3.6/site-packages/ansible/modules/cloud/vmware/vmware_guest.py.bak
    
  • 复制集合中的新模块到内置路径:
    cp /usr/share/ansible/collections/ansible_collections/community/vmware/plugins/modules/vmware_guest.py /usr/lib/python3.6/site-packages/ansible/modules/cloud/vmware/
    

4. 自定义AWX镜像(长期稳定方案)

为避免容器重启后配置丢失,建议自定义AWX镜像,预先安装最新集合:

  1. 创建Dockerfile:
    FROM ansible/awx:17.0.1
    RUN ansible-galaxy collection install community.vmware
    
  2. 构建自定义镜像:
    docker build -t my-awx:17.0.1 .
    
  3. 修改AWX部署配置(如docker-compose.yml),将awx_task和awx_web的镜像替换为自定义的my-awx:17.0.1,然后重启服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:52:49