我们正在使用 Vagrant 和 Chef 为我们的应用程序配置暂存虚拟机。
一旦我有了一份可用的食谱,我就会将其上传到 chef-server,然后 Jenkins hook 确保暂存环境得到更新。
但是,我不清楚如何在上传食谱之前试用它。我无法使用 chef-solo,因为我们使用的是环境。
我是否应该在虚拟机中本地运行 chef-server 并将其上传到虚拟机?或者我是否应该修复运行列表中的 cookbook 版本并上传新版本(这样,staging 仍可使用旧版本,即使新版本有误也不会中断)?
你怎么做到这一点?
答案1
我建议使用测试厨房使用 chef-zero 配置器。
有多个使用此方法的示例:
- https://github.com/chef-cookbooks/chef-splunk
- https://github.com/chef-cookbooks/chef-vault
- https://github.com/opscode-cookbooks/rsyslog
要启用零作为供应商,请将其放入 .kitchen.yml 中
provisioner:
name: chef_zero
您需要创建模拟环境,您应该将其创建为 JSON 文件test/integration/environments
。
有关 Test Kitchen 的其他文档由厨师文档