Test Kitchen 0.7.0 支持在 OpenStack 上对 Opscode Chef 进行集成测试

  • Matthias Marschall
  • 潘志明

2013 年 1 月 23 日

话题:DevOps

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 对于老版本的aptyumbuild-essentialgitrvm 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)关注我们,并与我们的编辑和其他读者朋友交流。

DevOps