我正在写一份厨师食谱。我有一个属性,其中包含一个带换行符的字符串。当我将属性用于内容设置为属性的文件资源时,生成的文件包含换行符。我希望该文件包含多行内容。
示例:
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
答案 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-----\""
再次感谢