[chef] RE: More fun with 11.6.0-hotfix.1 and Windows file access


Chronological Thread 
  • From: Serdar Sutay < >
  • To: " " < >
  • Subject: [chef] RE: More fun with 11.6.0-hotfix.1 and Windows file access
  • Date: Thu, 15 Aug 2013 18:41:35 +0000
  • Accept-language: en-US

Interesting issue... Thanks for sharing... Looks like one of the template is failing while trying to "move" the file (atomic update - a new feature of 11.6). 

A few questions & ideas Brian:

  • What is the windows flavor you are working on?
  • Looks like the files are going to "C:". Is the source of the template also on the same drive? 
  • How is the "/etc/sensu/conf.d/" directory is created?
    • Can you check the ACLs (permissions) on that directory before the run and after a chef-client run?  
  • Can you try setting atomic_update = false in these resources and see if that works for you? 

Thanks,
Serdar


From: Brian Anderson < >
Sent: Thursday, August 15, 2013 9:08 PM
To:
Subject: [chef] More fun with 11.6.0-hotfix.1 and Windows file access
 
I've just installed Chef 11.6.0-hotfix.1 and while it has fixed some of my file problems, I've still got one issue. (This works fine in 11.4.4-2). I'm wondering if anyone else has seen this (or if I'm the only sad admin who has to support Linux and Windows systems in the same cookbooks)

I have the following 2 recipes (checks for internally developed services):

sensu-x1batch-checks.rb:

service "sensu-client" do
    action :nothing
end

template "/etc/sensu/conf.d/worker-batch.json" do
    source "sensu-confd/worker-batch.json.erb"
    owner node['sensu']['user']
    group node['sensu']['group']
    mode "0644"
    notifies :restart, "service[sensu-client]"
    only_if {File.exists?("/etc/sensu/conf.d")}
end


sensu-x1interactive-checks.rb:

service "sensu-client" do
    action :nothing
end

template "/etc/sensu/conf.d/worker-interactive.json" do
    source "sensu-confd/worker-interactive.json.erb"
    owner node['sensu']['user']
    group node['sensu']['group']
    mode "0644"
    notifies :restart, "service[sensu-client]"
    only_if {File.exists?("/etc/sensu/conf.d")}
end


Most systems in our stack run either batch or interactive. A few run both.

On the ones that run both, the first recipe called works fine, but the second throws an error:

c2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:30-04:00] INFO: Processing service[sensu-client] action nothing (affect_mon::sensu-x1interactiv
e-checks line 10)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:30-04:00] INFO: Processing template[/etc/sensu/conf.d/worker-interactive.json] action create (a
ffect_mon::sensu-x1interactive-checks line 14)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:30-04:00] INFO: template[/etc/sensu/conf.d/worker-interactive.json] created file /etc/sensu/con
f.d/worker-interactive.json
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:54-04:00] INFO: template[/etc/sensu/conf.d/worker-interactive.json] updated file contents /etc/
sensu/conf.d/worker-interactive.json
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:54-04:00] INFO: template[/etc/sensu/conf.d/worker-interactive.json] owner changed to S-1-5-21-2
359669852-410513563-3594093940-500
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:54-04:00] INFO: template[/etc/sensu/conf.d/worker-interactive.json] group changed to S-1-5-32-5
44
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:54-04:00] INFO: template[/etc/sensu/conf.d/worker-interactive.json] permissions changed to [AFF
ECTIVA-X1\Administrator/flags:0/mask:c0010000, BUILTIN\Administrators/flags:0/mask:80000000, Everyone/flags:0/mask:80000000]
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:54-04:00] INFO: Processing service[sensu-client] action nothing (affect_mon::sensu-x1batch-chec
ks line 10)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:54-04:00] INFO: Processing template[/etc/sensu/conf.d/worker-batch.json] action create (affect_
mon::sensu-x1batch-checks line 14)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:31:55-04:00] INFO: template[/etc/sensu/conf.d/worker-batch.json] created file /etc/sensu/conf.d/wo
rker-batch.json
ec2-54-234-216-161.compute-1.amazonaws.com ================================================================================
ec2-54-234-216-161.compute-1.amazonaws.com Error executing action `create` on resource 'template[/etc/sensu/conf.d/worker-batch.json]'
ec2-54-234-216-161.compute-1.amazonaws.com ================================================================================
ec2-54-234-216-161.compute-1.amazonaws.com Permission denied - /etc/sensu/conf.d/worker-batch.json
ec2-54-234-216-161.compute-1.amazonaws.com # In c:/chef/cache/cookbooks/affect_mon/recipes/sensu-x1batch-checks.rb
ec2-54-234-216-161.compute-1.amazonaws.com  14: template "/etc/sensu/conf.d/worker-batch.json" do
ec2-54-234-216-161.compute-1.amazonaws.com  15:     source "sensu-confd/worker-batch.json.erb"
ec2-54-234-216-161.compute-1.amazonaws.com  16:     owner node['sensu']['user']
ec2-54-234-216-161.compute-1.amazonaws.com  17:     group node['sensu']['group']
ec2-54-234-216-161.compute-1.amazonaws.com  19:     notifies :restart, "service[sensu-client]"
ec2-54-234-216-161.compute-1.amazonaws.com  20:     only_if {File.exists?("/etc/sensu/conf.d")}
ec2-54-234-216-161.compute-1.amazonaws.com # Declared in c:/chef/cache/cookbooks/affect_mon/recipes/sensu-x1batch-checks.rb:14:in `from_file'
ec2-54-234-216-161.compute-1.amazonaws.com template("/etc/sensu/conf.d/worker-batch.json") do
ec2-54-234-216-161.compute-1.amazonaws.com   provider Chef::Provider::Template
ec2-54-234-216-161.compute-1.amazonaws.com   path "/etc/sensu/conf.d/worker-batch.json"
ec2-54-234-216-161.compute-1.amazonaws.com   source "sensu-confd/worker-batch.json.erb"
ec2-54-234-216-161.compute-1.amazonaws.com   cookbook_name "affect_mon"
ec2-54-234-216-161.compute-1.amazonaws.com   recipe_name "sensu-x1batch-checks"
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:19-04:00] INFO: Running queued delayed notifications before re-raising exception
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:19-04:00] INFO: template[C:/chef/client.rb] sending create action to ruby_block[reload_client_config] (delayed)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:19-04:00] INFO: Processing ruby_block[reload_client_config] action create (chef-client::config line 86)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:19-04:00] INFO: ruby_block[reload_client_config] called
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:19-04:00] INFO: template[/etc/sensu/conf.d/worker-interactive.json] sending restart action to service[sensu-client] (delayed)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:19-04:00] INFO: Processing service[sensu-client] action restart (affect_mon::sensu-x1batch-checks line 10)
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:21-04:00] INFO: service[sensu-client] restarted
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:21-04:00] ERROR: Running exception handlers
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:21-04:00] ERROR: Exception handlers complete
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:21-04:00] FATAL: Stacktrace dumped to C:/chef/cache/chef-stacktrace.out
ec2-54-234-216-161.compute-1.amazonaws.com [2013-08-15T12:32:21-04:00] FATAL: Errno::EACCES: template[/etc/sensu/conf.d/worker-batch.json] (affect_mon::sensu-x1batch-checks line 14) had an error: Errno::EACCES: Permission denied - /etc/sensu/conf.d/worker-batch.json

A file is written to the filesystem, but the file has no contents. 

If I re-run chef-client it will correct the problems:

[2013-08-15T14:06:35-04:00] INFO: template[/etc/sensu/conf.d/worker-batch.json]
backed up to C:/chef/backup/etc/sensu/conf.d/worker-batch.json.chef-20130815140
35
[2013-08-15T14:06:35-04:00] INFO: template[/etc/sensu/conf.d/worker-batch.json]
updated file contents /etc/sensu/conf.d/worker-batch.json

    - update content in file /etc/sensu/conf.d/worker-batch.json from e3b0c4 to
0366cc
        Could not determine diff. Error: diff: /etc/sensu/conf.d/worker-batch.j
on: No such file or directory
[2013-08-15T14:06:35-04:00] INFO: template[/etc/sensu/conf.d/worker-batch.json]
owner changed to S-1-5-21-2359669852-410513563-3594093940-500
[2013-08-15T14:06:35-04:00] INFO: template[/etc/sensu/conf.d/worker-batch.json]
group changed to S-1-5-32-544
[2013-08-15T14:06:35-04:00] INFO: template[/etc/sensu/conf.d/worker-batch.json]
permissions changed to [AFFECTIVA-X1\Administrator/flags:0/mask:c0010000, BUILT
N\Administrators/flags:0/mask:80000000, Everyone/flags:0/mask:80000000]
                                                                             



And the stack trace from the failed run:

Generated at 2013-08-15 12:32:21 -0400
Errno::EACCES: template[/etc/sensu/conf.d/worker-batch.json] (affect_mon::sensu-x1batch-checks line 14) had an error: Errno::EACCES: Permission denied - /etc/sensu/conf.d/worker-batch.json
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1406:in `unlink'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1406:in `block in remove_file'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1414:in `platform_support'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1405:in `remove_file'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:515:in `block in mv'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1515:in `block in fu_each_src_dest'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1531:in `fu_each_src_dest0'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:1513:in `fu_each_src_dest'
C:/opscode/chef/embedded/lib/ruby/1.9.1/fileutils.rb:508:in `mv'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/file_content_management/deploy/mv_windows.rb:78:in `deploy'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/provider/file.rb:331:in `update_file_contents'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/provider/file.rb:350:in `block in do_contents_changes'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/mixin/why_run.rb:52:in `call'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/provider.rb:149:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/provider/file.rb:349:in `do_contents_changes'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/provider/file.rb:120:in `action_create'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/provider.rb:114:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource.rb:625:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/runner.rb:49:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/runner.rb:81:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/runner.rb:81:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/runner.rb:81:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection.rb:98:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/resource_collection.rb:96:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/runner.rb:80:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/client.rb:429:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/client.rb:494:in `do_run'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/client.rb:212:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/application.rb:183:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/application/client.rb:302:in `block in run_application'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/application/client.rb:294:in `loop'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/application/client.rb:294:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/lib/chef/application.rb:66:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.6.0.hotfix.1/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:23:in `load'
C:/opscode/chef/bin/chef-client:23:in `<main>'


--
Brian Anderson | Operations Engineer
Phone 781.696.1304
 


www.affectiva.com

     w



Archive powered by MHonArc 2.6.16.

§