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

Molecule测试失败:Ansible返回TypeError: TLSConfig.__init__()意外参数'assert_hostname'

问题分析与解决方案

根因

这个错误是docker SDK for Python(docker包)版本自动升级到2.x系列导致的:

  • docker SDK 2.x版本移除了TLSConfig.__init__中的assert_hostname参数
  • 当前使用的community.docker集合版本(依赖要求>=1.9.1),旧版本的community.docker(<3.0.0)仍在调用这个已被移除的参数,从而触发兼容性错误

可行解决方案

方案1:锁定docker SDK到兼容旧版本

在流水线执行Molecule测试前,先安装指定版本的docker包,确保和现有community.docker版本兼容:

pip install docker==1.10.6

(注:1.10.6是经过验证的兼容版本,也可以选择其他1.x系列的稳定版本)

方案2:升级community.docker集合到兼容版本

升级community.docker到3.0.0及以上版本,这些版本已适配docker SDK 2.x的参数变更:

ansible-galaxy collection install community.docker:>=3.0.0 --force

同时注意:你的Ansible core版本是2.12.10,community.docker 3.x系列和该版本兼容,无需额外调整Ansible核心。

方案3:锁定Molecule及相关依赖版本

在流水线的依赖安装阶段,明确指定所有相关工具的版本,避免自动升级:

pip install molecule==3.5.2 molecule-docker==1.1.0 docker==1.10.6
ansible-galaxy collection install community.docker==2.10.0

(版本号可根据实际兼容情况调整,确保整套依赖版本匹配)

额外建议

  • 流水线中禁用依赖的自动升级,所有依赖都指定明确版本,避免类似兼容性问题再次发生
  • 定期同步依赖版本更新,提前验证兼容性后再升级,不要依赖后台自动升级

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:42:22