Yaml 向测试厨房添加属性

Yaml 向测试厨房添加属性,yaml,chef-infra,test-kitchen,Yaml,Chef Infra,Test Kitchen,我试图用重写javacookbook中的属性 当我尝试运行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:

我试图用重写
java
cookbook中的属性

当我尝试运行
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"
                }

我把上面的东西贴到了墙上。当我点击“Go”时,它会删除从“attributes”开始的所有行,然后显示绿色的“Valid YAML”。

属性作为正常YAML内容提供:

suites:
  - name: default
    run_list: 
      - recipe[java::default]
      - recipe[maven::default]
    attributes:
       java:
         install_flavor: "oracle",
         jdk_version: "7"
显示的语法与您的类似:

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

同时提供yaml属性,而不是json属性。谢谢,这很有效。你想把答案贴出来吗?谢谢你,我很高兴它能帮上忙。在搜索任何文档时,我想知道github wiki中的示例。那么不需要大括号了吗?我一直在成功地使用它们。示例:
attributes:{'java':{'install_flavor':'oracle'}}
我使用的是完整的yaml样式,但似乎这并不重要,如果它是完整的yaml或者整个属性是有效的json哈希(我会说你的不是有效的json样式)。我正在更新我的答案。很容易混淆新的ruby哈希表示法和json哈希表示法。这是一个ruby散列,其中一个名为key的符号映射到字符串“value”:
{key:“value”}
。这是一个json哈希,对应于
{“key”:“value”}
。在ruby 2.0之前更容易发现ruby哈希,它们都是这样的
{:key=>“value”}