我正在使用带有ec2驱动器的厨房。我想根据kitchen创建的实例名称将名称标签添加到ec2实例。如果我有一个'默认'套件并使用centos7.2,则厨房列表会将实例命名为'default-centos-72'。
我可以硬编码这样的东西:
suites:
- name: default
driver_config:
tags: { "Name": "kitchen-default-centos-72" }
但我真正喜欢的是这样的:
suites:
- name: default
driver_config:
tags: { "Name": <%= figure out instance name and prepend kitchen- %> }
我的例子建议使用ERB,这似乎是我的方式。但我似乎无法弄清楚用什么代码来获取实例的名称。我尝试使用一些Kitchen::Config.new...
,但无法找出有用的东西。任何建议将不胜感激。
我花了一段时间,但我终于遇到了一个可能向我展示光线的例子。在查看厨房的InSpec选项时,我发现您可以输出结果文件,其中包含测试运行期间使用的平台和套件名称。嵌套在platforms:
选项下的driver:
块中的以下语法应该有效。我没有通过在运行期间检查实例来测试这个,但希望我能找到一些时间来尽快完成。如果它不起作用,请告诉我,我们可以调整它直到它。
platforms:
- name: ubuntu
driver:
tags:
Name: test-kitchen-%{platform}-%{suite}
这应该如何工作是.kitchen.yml文件通过ERB预处理器运行,因此%{platform}
在循环跨越platforms
和suites
数组时解析为实例变量。