厨师换行没有插入

时间:2018-01-13 22:46:13

标签: chef

我正在写一份厨师食谱。我有一个属性,其中包含一个带换行符的字符串。当我将属性用于内容设置为属性的文件资源时,生成的文件包含换行符。我希望该文件包含多行内容。

示例:

default['ssh_private_key'] = "-----BEGIN RSA PRIVATE KEY-----\nline1\nline2\n-----END RSA PRIVATE KEY-----"


File '/tmp/private_ssh_key' do
  action :create
  owner 'root'
  group 'root'
  mode '0640'
  sensitive true
  content node['ssh_private_key']
end

我期待/ tmp / private_ssh_key包含:

-----BEGIN RSA PRIVATE KEY-----
line1
line2
-----END RSA PRIVATE KEY-----

而是/ tmp / private_ssh_key包含:

-----BEGIN RSA PRIVATE KEY-----\nline1\nline2\n-----END RSA PRIVATE KEY-----

如何使用实际换行符插入换行符?

我的Chef客户端版本是13.6.4

1 个答案:

答案 0 :(得分:0)

感谢所有回复。导致这个问题的是测试厨房。

我创建了一个环境变量:
SSH_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nline1\nline2\n-----END RSA PRIVATE KEY-----"

在我的.kitchen.yml文件中,我有以下内容: attributes: ssh_private_key: <%= ENV['SSH_PRIVATE_KEY'] %>

这会覆盖我食谱中的属性。但由于某种原因,测试厨房将环境变量视为字面值。我不得不将环境变量更改为以下内容以进行插值工作: SSH_PRIVATE_KEY="\"-----BEGIN RSA PRIVATE KEY-----\nline1\nline2\n-----END RSA PRIVATE KEY-----\""

再次感谢