2013-03-08 81 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