Chef infra 带测试厨房的备用驾驶员
许多烹饪书(如)都有多个.kitchen.yml文件。例如,mysql有一个.kitchen.yml和一个.kitchen-cloud.yml。查看测试厨房的文档和代码,除了Chef infra 带测试厨房的备用驾驶员,chef-infra,test-kitchen,Chef Infra,Test Kitchen,许多烹饪书(如)都有多个.kitchen.yml文件。例如,mysql有一个.kitchen.yml和一个.kitchen-cloud.yml。查看测试厨房的文档和代码,除了.kitchen.yml、.kitchen.local.yml和~/.kitchen/config.yml之外,我看不到任何使用配置文件的方法。如果我想使用mysqlcookbook中的云驱动程序,我会: cp.kitchen-cloud.yml.kitchen.yml cp.kitchen-cloud.yml.kitch
.kitchen.yml
、.kitchen.local.yml
和~/.kitchen/config.yml
之外,我看不到任何使用配置文件的方法。如果我想使用mysql
cookbook中的云驱动程序,我会:
cp.kitchen-cloud.yml.kitchen.yml
cp.kitchen-cloud.yml.kitchen.local.yml
- 还有别的吗
感谢Kitchen提供了三个环境变量来控制在何处查找每个可能的配置文件。要使默认行为明确,可以按如下方式设置:
KITCHEN_YAML="./.kitchen.yml"
KITCHEN_LOCAL_YAML="./.kitchen.local.yml"
KITCHEN_GLOBAL_YAML="$HOME/.kitchen/config.yml"
您不需要覆盖所有这些,因此可以使用.kitchen cloud.yml
运行测试厨房,如下所示:
$ KITCHEN_YAML=".kitchen-cloud.yml" kitchen test
除了zts所说的,请记住您可以在厨房文件中使用ERb,因此您的驱动程序配置可以如下所示:
driver:
name: <%= ENV['KITCHEN_DRIVER'] || 'vagrant' %>
驱动程序:
姓名:
。。。要添加到coderanger,如果您希望根据CI工具是否设置环境变量来选择驱动程序或选项,您还可以执行以下操作:
driver:
name: <%= ENV['KITCHEN_DRIVER'] || 'vagrant' %>
---
驱动程序插件:
驱动程序配置:
需要厨师长综合服务:11.10.4
aws\u访问\u密钥\u id:
aws\u密码\u访问\u密钥:
aws\u ssh\u密钥\u id:
ssh_密钥:
地区:
区域可用性:
风味标识:“t2.小”
组:[“测试厨房”]
定制:
内存:2048
平台:
-名称:ubuntu-14.04
驱动程序配置:
图像编号:ami-6ab2a702
用户名:ubuntu
标记:{“名称”:“测试厨房”}
巴斯尔:
sudo:是的
套房:
-名称:默认值
运行列表:[
]
属性:{
}
通过这种方式,您可以维护单个文件并避免不同的平台测试(在一个文件中进行更改,而在另一个文件中忘记更改)。还有一些情况下,.kitchen.local.yml中提供的选项可能与.kitchen.yml中的选项冲突。我是在寻找一个解决方案,用一个厨房文件支持多个驱动程序时发现这个问题的,艾夫斯的答案非常有帮助。我对它进行了调整,以执行以下操作
- 默认为流浪司机
- 允许用户使用KITCHEN_driver环境变量覆盖驱动程序设置
- 选择docker_ssh驱动程序(如果已安装)
---
司机:
姓名: