
Compass-CI 测试机管理从物理机到 Docker 容器的全面方案【免费下载链接】compass-ciCompass-CI 是一个可持续集成的开源软件平台。为开发者提供针对上游开源软件来自 Github, Gitee, Gitlab 等托管平台的测试服务、登录服务、故障辅助定界服务和基于历史数据的分析服务。项目地址: https://gitcode.com/openeuler/compass-ci前往项目官网免费下载https://ar.openeuler.org/ar/Compass-CI 作为可持续集成的开源软件平台为开发者提供了强大的测试服务。其中测试机管理是整个平台的核心环节涵盖了从物理机到 Docker 容器的全方位资源调度与管理。本文将详细介绍 Compass-CI 如何高效管理不同类型的测试机帮助开发者更好地利用测试资源。测试机管理架构概览Compass-CI 的测试机管理架构清晰资源层包含物理机、虚拟机等多种测试资源通过支撑层的调度和任务队列实现高效分配。如图所示物理机和虚拟机等测试资源位于资源层通过设备数据库进行统一管理确保测试任务能够精准分配到合适的测试机。物理机管理方案物理机加入集群在 Compass-CI 集群中物理机的加入需要遵循特定的规范。首先物理机与 CCI 集群通信的网卡须支持 PXE并且需要提供该网卡的 MAC 地址。其次物理机的 hostname 格式为“服务器型号-CPU 规格-内存规格--编号”须保证在集群中唯一。添加物理机的详细步骤可参考 sparrow/local/add_testbox_to_cci_cluster.zh.md通过该文档可以了解如何将新的物理机顺利加入到现有的 CCI 集群中。物理机分区配置为避免物理机重启后导致分区失效需要将分区配置写入/etc/fstab中。这一步骤确保了物理机的存储配置在系统重启后依然有效为测试任务的稳定执行提供了保障。物理机队列管理物理机消费 job 的队列列表用于指定物理机有消费哪些队列的 job 的能力。提交任务时调度器会检查/c/lkp-tests/hosts目录下是否存在该类型测试机对应的文件不存在将导致任务提交失败。通常可以直接复制一个已有的测试机类型的文件进行配置。Docker 容器管理方案容器服务构建与启动Compass-CI 中除了少数几个容器例如 es, logging-es, dnsmasq必须在用户本地通过 Dockerfile 构建出来以外其他镜像是不需要本地构建的。容器微服务的重启均由container目录下各个微服务对应的 start 脚本完成。例如为了使 dnsmasq 配置生效需要重启 dnsmasq可通过对应的 start 脚本执行重启操作。容器测试机类型在提交任务时可以不指定测试机类型默认会是dc-8g即默认的测试机类型是使用 Docker。这种方式为开发者提供了便捷的测试环境无需关心底层物理机的配置。测试机任务调度与监控任务调度流程测试任务提交后调度器会根据测试机的类型和能力将任务分配到合适的物理机或 Docker 容器中。设备数据库会实时记录测试机的状态确保任务能够高效、准确地执行。任务执行环境配置在任务执行过程中测试机的环境配置至关重要。例如在doc/user-guide/reproduce-the-job-environment/04.png中展示了 job 配置文件的部分内容其中包含了测试机类型、架构、路径等关键信息。通过这些配置Compass-CI 能够为测试任务提供一致、可靠的执行环境确保测试结果的准确性和可重复性。总结Compass-CI 提供了从物理机到 Docker 容器的全面测试机管理方案通过清晰的架构设计和完善的管理流程实现了测试资源的高效利用和任务的精准调度。无论是物理机的加入与配置还是 Docker 容器的构建与启动都有相应的规范和工具支持为开发者提供了便捷、可靠的测试服务。通过本文的介绍相信您对 Compass-CI 的测试机管理有了更深入的了解。如果您想进一步探索 Compass-CI 的功能可以参考官方文档和相关资源开始您的可持续集成测试之旅。【免费下载链接】compass-ciCompass-CI 是一个可持续集成的开源软件平台。为开发者提供针对上游开源软件来自 Github, Gitee, Gitlab 等托管平台的测试服务、登录服务、故障辅助定界服务和基于历史数据的分析服务。项目地址: https://gitcode.com/openeuler/compass-ci创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考