测试厨师食谱的最佳实践?

测试厨师食谱的最佳实践?

我的团队已经创建了大量 Chef 食谱。我想知道我应该研究哪些方法和框架,以便我们可以开始创建测试来确保我们的节点配置正确?

答案1

你也可以查看流浪汉为此
视频展示了如何使用 Vagrant 和 Chef 烹饪书组合。此外,Opscode 网站(更新2015-01-23:页面已消失...)。

答案2

cucumber-chefruby​​ 宝石和最近由 Nelson-Smith 等人出版的书籍《使用 Chef 进行测试驱动的基础设施》利用了该宝石 -http://www.cucumber-chef.org/

我刚从我的 GitHub 监视列表中记起这一点:https://github.com/gregretkowski/vmth/

VMTH(虚拟机测试工具)提供了一种对基础设施自动化进行单元测试的机制 - puppet 策略、chef 配方、发布部署脚本等。它使用现代 VM 监视器(如 qemu)的功能来快照系统状态,然后在每次测试后重置该状态,以便可以快速连续地在 VM 实例上执行一系列测试

答案3

有很多种选择。

Opscode 已在 Chef 开发路线图上“无操作”支持,这将有助于测试。我们争论“no-op” 不一定会做你想做的事,但可以理解对该功能的需求。

答案4

根据我的经验,真正做到这一点的唯一方法是使用临时环境和谨慎的开发实践。模拟实际要做的工作非常混乱和脆弱,并且在提交或推送时运行 CI 测试套件是很多编写和维护需要付出很多努力(尽管 Chef 在这方面可能比 Puppet 要好得多,这是我的主要经验),并且运行时间非常长。

编辑

在我写完这篇文章后,我突然意识到也许有一种方法可以用联合文件系统和大量脚手架对 Chef/Puppet 配方进行合理高效的“单元”测试。但是,我找不到任何人已经在这方面做过什么。我可能刚刚找到了一个项目。

相关内容