預設測試
預設情況下,在標準化配方中啟用測試,有四個預先定義的
測試名稱: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。