是否可以在不使用任何驱动程序的情况下针对服务器进行 运行 厨房测试?

Is it possible to run kitchen tests against a server without using any drivers?

我只是想看看是否可以 运行 厨房测试针对始终在线的服务器。

我知道针对您可以随意创建和销毁的 VM 测试说明书是最理想的,但我希望有一些精简的方法来针对一个盒子进行聚合和 运行ning 测试,仅使用WinRM 或 SSH。

你提到,"without using any drivers?" 根据the Kitchen documentation

This file uses Vagrant as the driver, which requires no additional configuration because it’s the default driver used by Kitchen

似乎没有办法避免使用驱动程序。但是,只要您不 运行 任何创建或销毁命令,您就可以不断地重新收敛和测试。

如果您继续,我认为记住两件事很重要:

  1. 您正在使用工具 against the way they're intended,因此与一般用户的工作流程相比,未来的更改更有可能破坏您的工作流程。

  2. 您并没有真正测试 Chef 在全新构建上的表现;您只是在测试是否可以从未知的当前状态进入所需的状态。如果您不经常测试服务器,您很可能无法从头开始构建服务器。

如果您只想收敛和 运行 测试,请考虑 运行 以独立方式使用现有测试工具。

我假设您想 运行 使用 Serverspec 或 InSpec 进行测试。这取决于验证者,.kitchen.ymldriverprovisioner 部分是可选的。如果您跳过它们 test-kitchen 将使用 dummy 驱动程序。所以没有驱动 kitchen list 看起来像:

$ kitchen list
Instance                          Driver  Provisioner  Verifier    Transport  Last Action
...
ci-server-ubuntu-1604             Dummy   ChefSolo     Serverspec  Ssh        <Not Created>

如果验证程序支持 ssh 或 winrm,您可以 运行 kitchen verify。 Serverspec 验证器 can do it, Inspec verifier can do it as well.

但是,如果您只想在机器上进行 运行 测试,我不确定是否需要整个测试厨房。 InSpec and Serverspec 都可以 运行 独立。

您可能想要 proxy driver:

driver:
  name: proxy
  host: testserver.example.com

请记住,您将无法在测试之间进行隔离,这是一件非常糟糕的事情。