用 Vagrant 测试厨师食谱

Testing chef cookbooks with Vagrant

我想使用 Vagrant 在不同的环境中测试我的食谱。

正如我所发现的,有 chef-client and chef-solo 个配置器,分别用于从 chef-server 下载说明书和在本地提供说明书。

我想在每本说明书中提供 Vagrantifle,以便为所有 knife 开发人员提供测试它的方法。如果 cookbook 是独立的,我只会使用 chef-solo provisioner,但是如果它有(多个)存储在 chef-server 上的 cookbook 依赖项怎么办?

解决此问题的最佳方法是什么:

  1. 在本地下载所有食谱并将其复制到 Vagrant
  2. 仅推送经过测试的食谱并从 chef-server 下载其余内容

优点和缺点是什么?我应该如何在不同的系统上测试我的食谱?

这确实是 Test Kitchen 的用途。它有一个 Vagrant 驱动程序,或者您可以通过另一个驱动程序插件使用几乎任何其他 VM/cloud 系统。它与 Berkshelf 和 Policyfile 系统集成以处理依赖项管理,因此您可以使用其中之一(希望您已经是)。