2017-08-07 86 views
0

有厨房,我试图定义使用多行环境变量的属性.kitchen.yml如:厨房.kitchen.yml多行环境变量

attributes: 
    foo: 
    ssh: 
     key_private: <%= ENV['CHEF_SSH_KEY_PRIVATE'] %> 

多线CHEF_SSH_KEY_PRIVATE变量是这样的:

-----BEGIN RSA PRIVATE KEY----- 
... 
... 
-----END RSA PRIVATE KEY----- 

这种方法对于单行变量来说工作得很好,但是当使用多行变量时文件不能被分析。我怀疑“编译”文件没有正确的缩进,但我不能对变量直接设置缩进,因为这可能需要不同的缩进级别其他YAML文件中使用。

我如何正确使用多行环境变量YAML没有解析问题?

+1

将它足以存储在变量单线双引号的价值呢?像' “--- BEGIN --- \ n ... \ n ... \ n --- END ---”' – flyx

+0

干得好,工作的魅力感谢状!我错过了双引号。如果你想发布此解决方案作为一个答案,我会接受它。 –

回答

3

您可以设置环境变量包含一个双引号的单行字符串逃过换行,像

"-----BEGIN RSA PRIVATE KEY-----\n...\n...\n-----END RSA PRIVATE KEY-----" 

这是安全的,在一个YAML文件的任何位置,包括在内容节点预计。