Opscode 宣布 Test Kitchen 0.7.0 已经可用,支持按需使用 OpenStack 实例来测试 Chef cookbook 。
Test Kitchen 作为一款工具软件,能够帮助 Opscode Chef cookbook 开发者在将 cookbook 应用到生产设施之前对其进行验证。Test Kitchen 不仅支持在所测 cookbook 上运行一些基本的语法检查,还能供应虚拟机,并在供应的虚拟机内执行所测 cookbook。在聚合虚拟机后,可以执行 MiniTest 来验证所测 cookbook 对虚拟机做了哪些修改。
Test Kitchen 0.7.0 之前的版本,必须使用 Vagrant 结合 VirtualBox 来供应虚拟机。因为 Vagrant 需要在每台开发工作站和持续集成服务器上安装并维护,这对已经在使用OpenStack 的用户来说是非常乏味的。最新版的Test Kitchen 使用户不必管理单独的Vagrant 环境。
为使用户从Vagrant 迁移到已有的OpenStack 配置,Test Kitchen 0.7.0 引入了一种新的OpenStack runner,这种runner 可以配置在cookbook 的 Kitchenfile 内,在 OpenStack 虚拟机上,它能自动安装 chef-client ,并执行聚合和测试。
openstack do auth_url "http://openstack-auth-host.example.com:5000/v2.0/tokens" username "openstack-user-name" password "the-password-of-the-openstack-user" tenant "test-kitchen" end
除了新的 OpenStack runner,Test Kitchen 0.7.0 对于老版本的 apt 、 yum 、 build-essential 、 git 和 rvm cookbook 没有任何硬编码依赖。不同于在 Cheffile 中指定这些 cookbook,初始化设置在自己的 cookbook 中进行。cookbook 可以依赖上述 cookbook 而无需指定其版本。
Test Kitchen 0.7.0 从 2012 年 12 月 3 日起就以 Ruby Gem 形式提供了。简单运行以下命令即可安装:
gem install test-kitchen
Test Kitchen 的源代码可以在 GitHub 上获取。
查看英文原文: Opscode Chef Integration Tests Now On OpenStack With Test Kitchen 0.7.0
感谢臧秀涛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论