【问题标题】:Adding Attributes to Test Kitchen为测试厨房添加属性
【发布时间】:2014-06-07 02:39:26
【问题描述】:

我正在尝试用test-kitchen 覆盖java 食谱中的属性。

当我尝试运行 kitchen converge default-centos-64 时,出现了一个糟糕的 YAML 错误。

---
driver:
  name: vagrant
  customize:
    memory: 1024
    cpuexecutioncap: 50

provisioner:
  name: chef_solo

platforms:
  - name: centos-6.4

suites:
  - name: default
    run_list: 
      - recipe[java::default]
      - recipe[maven::default]
    attributes: {
                  java.install_flavor: "oracle",
                  java.jdk_version: "7"
                }

我将以上内容粘贴到http://yamllint.com/。当我点击“Go”时,它会删除以“attributes”开头的所有行,然后显示绿色的“Valid YAML”。

【问题讨论】:

  • 以 yaml 形式提供属性,而不是以 json 形式提供。
  • 谢谢,成功了。您要发布答案以获得信用吗?
  • 谢谢你,我很高兴它有帮助。在搜索任何文档时,我想知道 github wiki 中的示例。

标签: yaml chef-infra test-kitchen


【解决方案1】:

属性作为正常的 yaml 内容提供:

suites:
  - name: default
    run_list: 
      - recipe[java::default]
      - recipe[maven::default]
    attributes:
       java:
         install_flavor: "oracle",
         jdk_version: "7"

Getting Started 显示的语法与您的相似:

suites:
  - name: default
    run_list: 
      - recipe[java::default]
      - recipe[maven::default]
    attributes: { 'java': { 'install_flavor': 'oracle' } }

【讨论】:

  • 所以不需要{} 大括号?我一直在成功使用它们。例如:attributes: { 'java': { 'install_flavor': 'oracle' } }
  • 我使用的是完整的 yaml 样式 here,但似乎没关系,如果它完全是 yaml 或整个属性是有效的 json 哈希(我会说你的'不是有效的 json 样式)。我正在更新我的答案。
  • 很容易将新的 ruby​​ 哈希表示法与 json 哈希表示法混淆。这是一个 ruby​​ 哈希,其中一个名为 key 的符号映射到一个字符串“value”:{ key: "value" }。这是一个对应{ "key": "value" }的json哈希。在 ruby​​ 2.0 之前更容易发现 ruby​​ 哈希,它们都是这样的{ :key => "value" }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-15
相关资源
最近更新 更多