test-kitchen:如何在kitchen.yml中读取平台特定的属性

时间:2015-06-09 19:17:47

标签: amazon-ec2 chef test-kitchen chefdk

在我的.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也提出了类似问题here

1 个答案:

答案 0 :(得分:2)

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