MiniQuark
MiniQuark

Reputation: 48436

Generate a file from a string without having to create a template file in Chef?

I currently use this code in a recipe:

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

And here's what id_rsa.erb looks like:

<%= @key %>

I was wondering if I could avoid having a template, and simply produce the file from the string. Something like this perhaps:

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

Upvotes: 19

Views: 9391

Answers (1)

StephenKing
StephenKing

Reputation: 37580

Use the file resource and specify the file contents to the content property.

In your case, this would result in a resource definition similar to this:

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

Upvotes: 50

Related Questions