2013-03-08 2 views
16

Attualmente uso questo codice in una ricetta:Generare un file da una stringa senza dover creare un file modello in Chef?

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

Ed ecco cosa id_rsa.erb assomiglia:

<%= @key %> 

Mi chiedevo se potevo evitare di avere un modello, e semplicemente produrre il file dalla stringa. Qualcosa di simile, forse:

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

risposta

45

utilizzare la risorsa file e specificare il contenuto del file alla proprietà content.

Nel tuo caso, questo si tradurrebbe in una definizione di risorse simile a questo:

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

OMG, ho guardato la risorsa di file, ma ho perso questo. Grazie! – MiniQuark

+5

Si potrebbe contrassegnare questa risposta come corretta :-) Thx – StephenKing