用于验证 VM 映像是否正常运行的测试用例

用于验证 VM 映像是否正常运行的测试用例

我目前正在使用自动化技术开展我的家庭实验室工作。我目前正在构建 Ubuntu 映像,这些映像应该在我的学生进行实验室工作时分发给他们。

我在想:我是否可以创建可以运行的测试来验证更新后的图像是否可用?如果您能提出一些对图像至关重要的测试,我将不胜感激。

例子:

  1. 假设我最近更新了图像(添加了新软件、补丁等)。
  2. 现在我想自动运行测试来验证一切是否正常:我想检查是否可以使用 GUI 和某些服务登录。

答案1

测试 Ansible 剧本的一个理论:继续添加任务做你想做的事情。将其视为断言所需状态。好模块如果他们无法完成任务,就会很早就失败,而且失败得很惨烈。

假设你对交互式用户很友好,并希望提供 tmux 和 Midnight Commander。将它们添加到软件包列表中

# in some vars file
packages:
- mc
- tmux

... 带有安装任务。

# in some role's tasks file
- name: Install software for thing
  package:
    state: present
    name: "{{ packages }}"

当您想要安装更多东西时,将其添加到软件包列表中。如果要安装的东西来自尚未提供的第三方存储库怎么办?在执行软件包任务之前,添加安装存储库的任务。并借此机会配置自动更新(如果适用)。

在自动化过程中进行所有自定义。模板化配置文件。启用并启动服务。将用户映射到他们的 ssh 公钥并摆脱密码。登录时显示信息横幅。无论你想做什么。

维护一个与其他用户具有相同降低权限的测试用户。使用其凭据测试 ssh 是否正常工作 (ansible_useransible_ssh_private_key_file) 并运行基本任务。

您要检查的某些内容不一定是模块故障。在failed_when:必要时修改表达式时任务失败的方式。添加assert:检查变量的任意条件的任务。

当剧本针对一组主机运行时,问题就会显现出来,因为它们失败了。

Ansible 是一种脚本语言工具。它可以远程访问主机并运行 Python 或 Powershell 等。GUI 不是它的强项。如果您想要自动测试实际启动 GUI 并执行某些操作,请获取其他工具。

不过,鉴于主机配置速度和准确性,您可能不需要很多自动化测试工具。当主机从基础映像到配置仅需几分钟而不是几小时时,也许这会为您在每次“发布”之前快速进行手动健全性检查腾出时间。

相关内容