默认测试
默认情况下,在标准化配方中启用测试,有四个预定义的
测试名称:boot、login、packages 和 network。这些都是小客人
检查,而不是完整的验收套件。配方可以禁用测试或
替换列表,并且某些工件类型使用更窄的契约。
默认值实际上证明了什么
| 测试 | 已执行检查 | 不证明 |
|---|---|---|
boot | uptime 通过 QEMU 来宾代理成功退出 | 每个引导加载程序路径、硬件引导或缺少内核警告 |
login | whoami 可以通过 root guest-agent 通道运行 | 交互式密码、SSH 密钥、PAM、桌面欢迎程序或最终用户登录 |
packages | dpkg --list、rpm -qa 或 pacman -Q 之一成功 | 提示所请求的每个包均已安装 |
network | DNS 解析 example.com 并在有限重试后与端口 443 的 TCP 连接成功 | 一般互联网健康状况、HTTP 内容、每个接口或气隙设计 |
Ubuntu 24.04 CIS 路径删除了通用网络检查并使用其 相反,准备就绪门控功能断言。没有预期的食谱 互联网路由可以将失败的通用网络检查转换为警告。
特性和能力检查
运行程序还合并由启用的功能元数据、旧版本提供的检查 挂钩测试文件、冻结的能力计划、显式自定义测试以及任何 基准测试。重复的断言被删除。已知的断言 丢失的参数将被丢弃,并发出服务器警告;审查结果 制定测试计划,这样掉落的支票就不会被误认为是通过。
示例包括检查配置的 SSH 端口、服务状态、请求的 包,或特定于配方的工件。覆盖范围取决于启用的 功能:包含某个功能本身并不保证该功能具有 一个完整的断言集。
读取结果
使用断言行和证据,而不仅仅是聚合徽章:
passed表示可执行检查返回了预期结果。failed表示检查已运行且与预期相矛盾。error表示安全带无法做出判断。skipped表示检查未运行,例如因为其目标 VM 是 缺席。
错误和跳过不是通过。完成的图像和通过的测试运行是 独立的州;认证是第三道门。
定义更严格的验收标准
对于真实的工作负载,添加与提示相关的断言。例如:
{
"description": "Nginx serves the local health endpoint",
"assertions": [
{
"type": "service_running",
"description": "Nginx is active",
"params": { "service": "nginx" }
},
{
"type": "http_responds",
"description": "Health endpoint returns 200",
"params": { "url": "http://localhost/health", "status": 200 }
}
]
}然后在控制台中检查构建的图像,对于硬件绑定的声明, 在代表性硬件上进行测试。参见 Custom assertions 和 Assertion types。