我的团队创建了大量厨师食谱。我想知道我应该研究什么方法和框架,以便我们可以开始创建测试以确保节点配置正确?
我的团队创建了大量厨师食谱。我想知道我应该研究什么方法和框架,以便我们可以开始创建测试以确保节点配置正确?
Answers:
有cucumber-chef
红宝石宝石,还有最近发行的一本书Nelson-Smith等人-“利用厨师进行测试驱动的基础架构”,该书利用了该宝石-http: //www.cucumber-chef.org/
刚刚从我的github监视列表中记住了这一点:https : //github.com/gregretkowski/vmth/
VMTH(虚拟机测试工具)提供了一种对基础架构自动化进行单元测试的机制-人偶策略,厨师食谱,发布部署脚本等。它使用现代VM监视器(例如qemu)的功能来快照系统状态,然后重置每次测试后的状态,以便可以快速连续地对VM实例执行一系列测试
有很多选择。
Opscode在Chef开发路线图上具有“无操作”支持,这将有助于测试。我们确实认为 “无操作”并不一定能满足您的需求,但可以理解对功能的渴望。
这里的一些答案似乎有些陈旧。对于CI和本地测试,我会考虑利用诸如Test Kitchen之类的测试工具,如果您已经使用过它,它也支持Vagrant。
它将使您能够对当今的许多云和虚拟化解决方案运行您的cookkooks:EC2,Digital Ocean,Vagrant,Docker等。
它还具有插件,使您可以运行当今存在的许多基础结构测试工具之一:
以我的经验,真正做到这一点的唯一方法是在临时环境和谨慎的开发实践中。模拟要完成的实际工作非常混乱且脆弱,并且在提交或推送上运行的CI测试套件在编写和维护方面付出了很多努力(尽管Chef在这方面可能比Puppet好很多,这是我的主要经验) ),并花费大量的时间来运行。
编辑
就在我写完这篇文章之后,我突然意识到,有一种方法可以使用联合文件系统和大量的脚手架对厨师/人偶食谱进行相当有效的“单元”测试。但是,我找不到任何人已经在此区域中完成的任何操作。我可能刚刚发现自己是一个项目。