[chef] Re: Chef Recipe Help


Chronological Thread 
  • From: Noorul Islam K M < >
  • To: Ravindra < >
  • Cc:
  • Subject: [chef] Re: Chef Recipe Help
  • Date: Thu, 07 Nov 2013 14:07:52 +0530

Ravindra 
< >
 writes:

> Hello,
>
> I'm learning Chef and need help in below mentioned scenario.
>
> Here is the Chef recipe that I'm using.
>
> in attributes/default.rb file
> node['my_recipe']['sample'] = {'tool1' => ['toolname', 'tool1.exe',
> '/sc Weekly /d SUN /st 1:00]}
>
> #global variable
> $schedule_name=''
> $executable =''
> $schedule = ''
>
>
> node['my_recipe']['sample'].each do |tool, infoList|
>       ruby_block "assign_variable" do
>               block do
>                       $schedule_name = infoList.at(0)
>                       $executable = infoList.at(1)
>                       $schedule = infoList.at(2)
>
>                       puts "schedule_name = #{$schedule_name}"
>                       puts "executable = #{$executable}"
>                       puts "schedule = #{$schedule}"
>               end
>               action :create
>               notifies :run, "execute[schedule_#{tool}]"
>       end
>
>       ruby_block "display_variable" do
>               block do
>                       puts "schedule_name = #{$schedule_name}"
>                       puts "executable = #{$executable}"
>                       puts "schedule = #{$schedule}"
>               end
>       end
>
>       execute "schedule_#{tool}" do
>               command "schtasks /create /tn \"#{$schedule_name}\" /tr
> \"#{node['my_recipe']['tools_dir']}\\#{tool}\\#{$executable}\"
> #{$schedule}"
>               action :nothing
>       end
> end
>
>
> In "ruby_block "assign_variable" do", I'm asigning values to global 
> variable.
>
> In "ruby_block "display_variable" do", I'm able to fetch the values of
> these variables successfully.
>
> However, in "execute "schedule_#{tool}" do", when I'm using these
> global variable it returns me empty.
>
> Could you please assist me resolving me?
>

From 

http://docs.opscode.com/resource_ruby_block.html

The ruby_block resource is used to execute Ruby code during a
chef-client run. Ruby code in the ruby_block resource is evaluated with
other resources during convergence, whereas Ruby code outside of a
ruby_block resource is evaluated before other resources, as the recipe
is compiled.


Regards,
Noorul


  • [chef] Re: Chef Recipe Help, Noorul Islam K M, 11/07/2013

Archive powered by MHonArc 2.6.16.

§