如何搜索 .kitchen.yml 属性

How to search the .kitchen.yml attributes

我想用

搜索主机名
searchnode = search(:node, "zookeeper:true")

想要获得作为节点的输出 Hostname.fqdn.com,但我没有得到它。也许我不知道如何访问属性。

---
driver:
  name: vagrant

provisioner:
  name: chef_zero
  environments_path: test/integration/default/environments
  client_rb:
    environment: stg

  always_update_cookbooks: true

verifier:
  name: inspec

platforms:
  - name: centos-7.2

suites:
  - name: Hostname.fqdn.com
    run_list:

          - recipe[test-cookbook::test]


    data_bags_path: "test/integration/default/data_bags"


attributes: {zookeeper: "true"}

您的 .kitchen.yml 无效,因为顶级 attributes 部分已被忽略。您应该将它移到 suite 的元素下方(缩进对 YAML 很重要!):

suites:
  - name: Hostname.fqdn.com
    run_list:
      - recipe[test-cookbook::test]
    data_bags_path: "test/integration/default/data_bags"
    attributes: {zookeeper: "true"}

然后,您的 search 应该会找到这个节点。您可以使用 kitchen diagnose 查看结果属性。

如果你想模拟测试厨房中的其他节点,你可以将包含节点定义的 JSON 文件放在 test/integration/nodes 中(如 this cookbook; can be configured via node_path 中所用)。然后,您可以根据其他节点的属性或 运行 列表使用搜索 "discover" 其他节点。