ansible-test 的 Docker 容器怎么选?default、base 与发行版容器的适用区别

发布时间:2026/9/9 22:24:51
ansible-test 的 Docker 容器怎么选?default、base 与发行版容器的适用区别 ansible-test 的 Docker 容器怎么选default、base 与发行版容器的适用区别【免费下载链接】ansibleAnsible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.项目地址: https://gitcode.com/GitHub_Trending/ans/ansible在 Ansible 仓库里做开发时sanity、units、integration 三类测试都通过ansible-test执行而用容器跑测试时容器选错会导致测试跑不对、跑不全或根本无法运行。这篇文章说明如何根据测试类型选择容器什么时候用default、什么时候用base、什么时候必须换成ubuntu这类发行版容器以及如何用--help核对可用容器及其支持的 Python 版本。依据是仓库内的 context/running-tests.md前提是你已经能正常执行ansible-test且本机有 Docker 或 Podman--docker参数同时支持两者。三类测试对应两套容器ansible-test的容器选择规则按测试类型划分规则本身很简单但两套容器不能混用测试类型容器选择文档依据Sanity 测试--docker不带参数时默认使用default容器base和default容器仅用于 sanity/unit 测试Unit 测试--docker默认default容器也可用base同上Integration 测试发行版容器如--docker ubuntu、--docker fedora明确标注 NOT default/base容器要按被测模块选择也就是说文档中能够确认的区分点是default与base属于同一档只服务于 sanity/unit 测试而发行版容器只服务于 integration 测试。不要拿default或base去跑 integration 测试反过来sanity/unit 测试也不需要指定发行版容器。几个可以直接照抄的执行命令# Sanity 测试--docker 不带参数默认使用 default 容器 ansible-test sanity -v --docker # Unit 测试同样走 default 容器 ansible-test units -v --docker # 指定某个 unit 测试文件路径相对仓库根目录目标位于 test/units/ ansible-test units -v --docker test/units/modules/test_command.py # Integration 测试必须指定发行版容器例如 ubuntu ansible-test integration -v --docker ubuntu # 运行某个 integration targettest/integration/targets/ 下的目录名 ansible-test integration -v --docker ubuntu pingintegration 测试选哪个发行版取决于正在测试的模块文档给出的示例是--docker ubuntu和--docker fedora其余发行版以--help输出为准。用 --help 核对可用容器和 Python 版本不要凭记忆猜容器名。文档明确说明Available containers and their supported Python versions are listed in the--helpoutput for each test command.即每个测试命令的--help输出都会列出可用容器及其支持的 Python 版本且不同测试命令列出的容器档位不同ansible-test sanity --help ansible-test units --help ansible-test integration --help写测试计划或排查某个容器为什么不可用时以对应命令的--help输出为准而不是参考其他命令的输出。两个容易踩的坑坑一紧跟在--docker后面的参数会被当成镜像名。文档特别提示不要把一个非容器参数直接放在--docker之后因为它会被解释为镜像名称。例如要加-v或指定测试文件时先写命令主体再写--docker不带参数的形式避免写成类似--docker -v的排列。坑二--venv只是兜底方案。当容器不可用时可以用--venv作为回退但文档提醒由于宿主机环境差异unit 测试在 venv 下可能不可靠。--docker才是preferred for reliable, isolated testing的路径。另外sanity 测试其实可以不依赖容器直接跑ansible-test sanity -v只是部分测试会因本地缺少依赖如额外的 Python 版本、shellcheck、PowerShell而被跳过文档给出的建议是对变更集内所有文件运行 sanity并用--docker获得完整覆盖。选择流程小结先确定测试类型sanity/unit还是 integration。sanity/unit 直接用ansible-test sanity|units --docker默认落到default容器需要base时也在这一档里选。integration 改为--docker 发行版按被测模块挑选ubuntu、fedora为文档示例其余见--help。运行前用对应命令的--help确认容器名和支持的 Python 版本--docker后不要紧跟非容器参数。容器环境不可用时才退回--venv并接受 unit 测试可能不可靠这一限制。更多命令细节如--list-tests、--coverage、指定文件路径的运行方式见 context/running-tests.md仓库根目录的 AGENTS.md 也把容器选择指向了同一文档。【免费下载链接】ansibleAnsible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.项目地址: https://gitcode.com/GitHub_Trending/ans/ansible创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询