测试厨房,存储凭据

Test Kitchen, store credentials

使用 Test Kitchen,在 yaml 配置中...存储适用于多个平台和多个套件的全局使用属性的最佳位置在哪里?

以我的.kitchen.yml为例:

---
provisioner:
   name: chef_solo

platforms:
  - name: centos-6.5
    driver:
      name: vagrant
  - name: amazon
    driver:
      name: ec2
      image_id: ami-ed8e9284
      flavor_id: t2.medium
      aws_ssh_key_id: <snip>
      ssh_key: <snip>
      availability_zone: us-east-1a
      subnet_id: subnet-<snip>
      require_chef_omnibus: true
      iam_profile_name: <snip>
      ebs_delete_on_termination: true
      security_group_ids: sg-<snip>

# area in question (does not work here)
attributes:
  teamcity:
    server: 'build.example.com'
    port: 80
    username: 'example'
    password: 'example'
# end area in question

suites:
  - name: resin4
    run_list:
      - recipe[example_server::resin4]
      - recipe[example_server::deploy_all_artifacts]
  - name: deploy
    run_list:
      - recipe[example_server::deploy_all_artifacts]
  - name: default
    run_list:
      - recipe[example_server::elasticsearch]
      - recipe[example_server::resin4]
      - recipe[example_server::deploy_all_artifacts]

我知道还有其他 kitchen 文件,例如 ~/kitchen/config.yml 和 .kitchen.local.yml 但我一直无法找到一个方法来获取适用于所有平台和套件的属性.将属性复制并粘贴到平台是最好的方法吗?

是否有理由在 kitchen 的 yaml 中指定这些属性而不是 recipe[example_server::deploy_all_artifacts]?如有必要,您可以在厨房中设置覆盖。

此外,这个 post 可能会有帮助:Access Attributes Across Recipes