运行ansible-test测试community.aws集合时模块解析失败求助
解决ansible-test无法找到amazon.aws.aws_az_info模块的问题
问题核心
ansible-test在Docker隔离环境中仅默认加载当前测试的community.aws集合,不会自动识别全局安装的amazon.aws集合;而直接执行ansible命令时使用的是全局集合路径,因此出现模块存在但测试无法调用的矛盾。
解决方案
本地安装依赖集合到测试目录
在community.aws仓库根目录下,将amazon.aws集合安装到本地collections目录(ansible-test会自动加载此目录下的集合):ansible-galaxy collection install amazon.aws -p ./collections声明集合依赖(推荐)
编辑仓库根目录的galaxy.yml,添加amazon.aws的依赖声明,确保测试环境自动拉取所需依赖:dependencies: - name: amazon.aws version: ">=3.0.0" # 根据实际需求指定兼容版本然后执行命令安装所有依赖:
ansible-galaxy collection install -r galaxy.yml -p ./collections强制指定集合路径运行测试
如果上述步骤未生效,可在测试命令中显式指定集合加载路径:ansible-test integration elb_network_lb --docker -v --collection-path ./collections排查Docker容器内集合状态
若问题仍存在,可进入测试容器验证集合是否正确安装:# 查看运行中的测试容器ID docker ps # 进入容器 docker exec -it <容器ID> bash # 列出已安装的集合 ansible-galaxy collection list
内容的提问来源于stack exchange,提问作者Erin DeLong
相关产品推荐
相关产品推荐

