【问题标题】:test-kitchen: unable to use ENV variable in .kitchen.yml on Windows测试厨房:无法在 Windows 上的 .kitchen.yml 中使用 ENV 变量
【发布时间】:2018-05-25 20:43:36
【问题描述】:

在 Windows 平台上使用 ENV var 时,我似乎无法在 .kitchen.yml 中使用 erb。

$ kitchen list
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::UserError
>>>>>> Message: Error parsing C:/Users/anonymous/.kitchen.yml as YAML.
Please run `kitchen diagnose --no-instances --loader' to help debug your issue.
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

.kitchen.yml

---
driver:
  name: vagrant
  synced_folders:
    - [<%= ENV['PWD'] %>, '/tmp/foo']

provisioner:
  name: chef_zero

platforms:
  - name: ubuntu-16.04

suites:
  - name: default

环境

$ chef -v
Chef Development Kit Version: 2.4.17
chef-client version: 13.6.4
delivery version: master (73ebb72a6c42b3d2ff5370c476be800fee7e5427)
berks version: 6.3.1
kitchen version: 1.19.2
inspec version: 1.45.13

这在我的 Ubuntu 16.04 机器上运行良好,使用相同的文件和软件版本。

我相信这与 cucumber/aruba 项目报告的类似问题有关 ~ https://github.com/cucumber/aruba/issues/291

我尝试向 test-kitchen 项目提交一个新问题,但他们将我推荐给他们的 contributing guidelines,这只是一个发布过程。由于我无法提交新问题,因此我来到 SO 希望得到一些明确或解决方法。

【问题讨论】:

    标签: windows chef-infra yaml erb test-kitchen


    【解决方案1】:

    问题很可能是在替换 Erb 之后,这看起来像 - [C:\Users\anonymous, '/tmp/foo']。其中的: 是一个重要的 YAML 语法字符。简单的解决方案是- ["&lt;%= ENV['PWD'] %&gt;", '/tmp/foo']- [&lt;%= ENV['PWD'].to_json %&gt;, '/tmp/foo'](JSON 是 YAML 的子集)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      相关资源
      最近更新 更多