2

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

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

4

3 回答 3

3

我假设您想使用 Serverspec 或 InSpec 运行测试。它取决于验证者,driver部分provisioner.kitchen.yml可选的。如果您跳过它们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 验证器可以Inspec 验证器也可以

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

于 2016-11-18T07:03:50.623 回答
3

您可能需要代理驱动程序

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

请记住,您不会在测试之间获得隔离,这是一件非常糟糕的事情。

于 2016-11-18T13:05:04.953 回答
2

你提到,“不使用任何驱动程序?” 根据厨房文档

该文件使用 Vagrant 作为驱动,不需要额外配置,因为它是 Kitchen 使用的默认驱动

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

我认为重要的是要记住两件事,如果你继续:

  1. 您正在按照它们的预期方式使用这些工具,因此与典型用户的工作流程相比,未来的更改更有可能破坏您的工作流程。

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

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

于 2016-11-18T07:03:30.073 回答