测试厨房:如何读取 kitchen.yml 中的平台特定属性

test-kitchen: how to read platform specific attributes in kitchen.yml

在我的 .kitchen.yml 配置中,我尝试根据平台版本应用属性。我的厨房配置如下:

platforms:
  - name: centos-6.3
    driver_plugin: ec2
    driver:
      image_id: ami-xxxxxxxx
    attributes:
      pg_version: "9.3"
  - name: centos-6.5
    driver_plugin: ec2
    driver:
      image_id: ami-yyyyyyyy 
    attributes:
      pg_version: "9.4"

kitchen converge 过程中,我无法正确获取 pg_version 值。对于我的厨师脚本 pp node.debug_value('pg_version') 中的这段代码,输出如下:

   [["set_unless_enabled?", false],
    ["default", :not_present],
    ["env_default", :not_present],
    ["role_default", :not_present],
    ["force_default", :not_present],
    ["normal", "9.4"],
    ["override", :not_present],
    ["role_override", :not_present],
    ["env_override", :not_present],
    ["force_override", :not_present],
    ["automatic", :not_present]]

我不是很清楚这个结果。我假设我在 platforms yml 部分中指定的属性的优先级是 normal,那么我怎样才能得到它呢?

用户danieljimenez also raised similar question .

各种优先级别合并为一个 node 对象。在您的情况下,您需要使用 node['pg_version'] 访问它。设置值时只需要node.defaultnode.setnode.override即可。