2013-03-08 48 views
16

我目前在配方中使用此代码:从字符串生成文件,而不必在Chef中创建模板文件?

template "/var/django/.ssh/id_rsa" do 
    source "id_rsa.erb" 
    owner "django" 
    group "django" 
    variables :key => ssh_key 
    mode 00600 
end 

而这里的id_rsa.erb样子:

<%= @key %> 

我在想,如果我能避免模板,简单地产生文件来自字符串。像这样的事情也许:

file_from_string "/var/django/.ssh/id_rsa" do 
    source ssh_key 
    owner "django" 
    group "django" 
    mode 00600 
end 

回答

45

使用file资源,并指定文件的内容会content财产。

在你的情况,这将导致类似于资源定义:

file "/var/django/.ssh/id_rsa" do 
    content ssh_key 
    owner "django" 
    group "django" 
    mode 00600 
end 
+0

妈呀,我看着文件资源,但是我错过了这一点。谢谢! – MiniQuark 2013-03-08 13:20:37

+5

您可以将此答案标记为正确:-) Thx – StephenKing 2014-01-22 07:35:21