Create random file and assign to a variable in recipe

Good Day

In my recipe I want to create a filename with a random name in say either a
ruby block or a bash block. I then want to assign that created filename to
a variable and use that variable in the rest of my recipe.

How do I go about doing that?

Regards

This one is tricky...

You'll need to calculate your string(s) during the compilation phase or
your recipe, and pass then use them in your resources. Something like this.

my_string = 'ABC123etcetc'

directory "/stuff/#{my_string}" do
action :create
end

file "/stuff/#{my_string}/file_1" do
action :create
end

file "/stuff/#{my_string}/file_2" do
action :create
end

However, you need need to be careful how you generate my_string.
You'll be tempted to make them actually random

require 'securerandom'
my_string = SecureRandom.hex

This won't work, because my_string will* change on subsequent chef-client
runs. *

You'll need to use something like:

require 'digest'

seed = "constant"
my_string = Digest::SHA1.hexdigest(seed)[0,8]

Hope that helps.

-s

On Thu, Jul 23, 2015 at 5:27 AM, Jacobus van Heerden jacobus@konga.com
wrote:

Good Day

In my recipe I want to create a filename with a random name in say either
a ruby block or a bash block. I then want to assign that created filename
to a variable and use that variable in the rest of my recipe.

How do I go about doing that?

Regards