[chef] Re: Re: setting file permssions in the execution phase


Chronological Thread 
  • From: Rob Curtis < >
  • To:
  • Subject: [chef] Re: Re: setting file permssions in the execution phase
  • Date: Wed, 12 Feb 2014 11:21:52 -0600

I had a similar situation back in October (if you feel like going through the mailing list archives).  As Dennis said, a ruby_block resource is the way to go.  I ended up doing something like the following:
 
### BEGIN CODE ###
 
# Gotta set up the run context in order to create chef resources inside a ruby_block
@events = Chef::EventDispatch::Dispatcher.new()
run_context = Chef::RunContext.new( node, @events )
 
# For each directory that has files you want to update
[ '/directory/with/files/you/want/to/update/*', '/another/directory/with/files/*'].each do |dir}
  ruby_block "update #{dir}" do
    action :create
    block do
      Dir[ "#{dir}" ].each do |path|
        if File.file?(path)
          curr_file = Chef::Resource::File.new( path, run_context )
          curr_file.owner "foo"
          curr_file.group "bar"
          curr_file.mode "0640"
          curr_file.run_action :create
        end
      end
    end
  end
end
### END CODE ###
 
Hope this makes sense.
 
-Rob
On Wed, Feb 12, 2014 at 10:57 AM, Dennis Benzinger < " target="_blank"> > wrote:
Hello Richard,

I'm new to Chef myself but I think you should use a ruby_block resource.
See http://docs.opscode.com/resource_ruby_block.html for details.


Hope this helps,
Dennis Benzinger | hybris



On 11.02.2014 10:24, Richard Murray wrote:
Hi I'm quite new to Chef and I'm struggling to set some file permissions using the following cookbook.  I'm using 'ark' to install Tomcat (I know there is a 'Tomcat' cookbook however this always pulls in the OpenJDK and I want to use Oracle's JDK).

The .tar.gz file is extracted OK however I'm unable to start Tomcat as the permissions in /usr/local/tomcat/conf have restricted permissions (read and write permissions for the file owner only).

I have tried using the Chef 'file' and 'directory' resources to update the permissions but these don't seem to have any effect.  Does the code below update permissons in the compile phase or the execution phase?  If so what is the correct way to do this (to update permissions after the ark action has executed).

ark "tomcat" do
   mode 0755
   #version '2.2.0'
   # test this checksum works...
   #checksum '18688f15ade6aa1aff510ff1b5990979 *apache-tomcat-7.0.50.zip'
   #try adding path attribute...
   action :install
end
 
#["/usr/local/tomcat/logs", "/usr/local/tomcat/conf"].each do | path | 
# directory path do
# mode 0777
# recursive true
# end 
#end

#update permissons on tomcat conf files..
Dir[ "/usr/local/tomcat/conf/**" ].each do |path|
  file path do
    mode "0755"
action :touch
  end 
end

Thanks, 
Richard.


Dennis Benzinger
Platform Automation Engineer
Managed Services

Nymphenburger Straße 86
80636 München, Deutschland
www.hybris.com

Geschäftsführer:
Ariel Lüdi, Carsten Thoma, Moritz Zimmermann, Michael Zips

Amtsgericht:
München, HRB 124384





Archive powered by MHonArc 2.6.16.

§