# dronesrc1 **Repository Path**: racing-online/dronesrc1 ## Basic Information - **Project Name**: dronesrc1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-09 - **Last Updated**: 2025-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WXIAT - 赛马机制 - VM 自动化测试工作流 [![Build Status](http://192.168.4.45:8088/api/badges/wxiat-turf/demo-vm-exec-runner/status.svg?ref=refs/heads/update-kernel)](http://192.168.4.45:8088/wxiat-turf/demo-vm-exec-runner) ## 简介 基于 Drone CI/CD 平台,实现申威赛马机制测试自动化,主要步骤包括: - 检查物理机环境是否存在所需二进制,是否启动所需服务 - 生成 SSH Key,生成 cloud-init.iso,用于实现免密登陆 - 下载虚拟机镜像,对虚拟机参数进行配置,启动虚拟机 - 为虚拟机安装新内核,进行重启 - 检查内核安装结果 - 摧毁虚拟机 ## 结构 ``` ├── .drone.yml ................ Drone 流水线配置文件(需修改) ├── cloud-init ................ 通过 cloud-init 向虚拟机注入 SSH 公钥,实现免密登陆 │ ├── gen-cloud-init.sh ......... 生成 SSH Key 及 cloud-init.iso 的脚本 │ ├── meta-data ................. 虚拟机基础元数据 │ └── user-data ................. 虚拟机自定义配置,用于注入 SSH 公钥(无需修改,除非有需额外添加的配置) ├── config .................... 虚拟机参数设置(需修改) ├── README.zh-CN.md ├── scripts ................... 脚本 │ ├── check.sh .................. 检查物理机环境是否存在所需二进制,是否启动所需服务 │ ├── clean.sh .................. 删除虚拟机 │ ├── create-image.sh ........... 下载镜像并创建增量镜像 │ ├── ping-vm.sh ................ 检查虚拟机网络连通性 │ ├── ssh.sh .................... 免密登陆至测试虚拟机 │ └── start-vm.sh ............... 对虚拟机参数进行配置,启动虚拟机 └── vm.xml .................... libvirt 虚拟机配置 XML ``` ## 使用 ### 物理机要求 运行 Drone Exec Runner 的物理机应满足以下条件: - `qemu-kvm` `qemu-img` `ssh` `ssh-keygen` `genisoimage` `crudini` 二进制可用 - `libvirtd` 服务已运行 ### 修改 config 根据测试需求,对以下条目进行配置 - `img_url`:虚拟机镜像地址,要求镜像中安装 `cloud-init`,支持本地 URL 和网络 URL - `memory`:虚拟机内存大小,单位为 GiB - `vcpu`:虚拟机 CPU 数量 > `address` 用于存储虚拟机启动后获取的 IP,置空即可 ### 修改 .drone.yml 1. 对 `node` 部分进行配置,将此工作流路由至具有匹配标签的主机运行 > 标签在启动 Drone Exec Runner 时通过 [DRONE_RUNNER_LABELS](https://docs.drone.io/runner/exec/configuration/reference/drone-runner-labels) 设定 本示例中对**处理器型号**及**内核版本**进行了指定 ```yaml node: cpu: sw8a kernel: 5.10.0 ``` 2. 在 `start-vm` 与 `clean` 步骤间自定义测试步骤,注意需要调用 `./scripts/ssh.sh` 登陆至虚拟机以在虚拟机内执行命令 > [Drone Exec Pipeline 官方文档](https://docs.drone.io/pipeline/exec/overview/)