[chef] out-of-the-box chef-client cookbook has no interval dial


Chronological Thread 
  • From:
  • To: chef < >
  • Subject: [chef] out-of-the-box chef-client cookbook has no interval dial
  • Date: Thu, 6 Oct 2011 17:55:22 -0700


hiya,

at this point in my chef infancy i'm under the impression that i should
be able to use community cookbooks as is for basic functionality, and
shouldn't generally need to modify them. if i need to modify attributes,
i do that in an attribute override.

i'm trying to do that for the chef-client interval. it defaults to
1800 in the cookbook's default attributes. i have an override in my
base role:

[chefrepo]$ knife role show base -a override_attributes
override_attributes: 
  chef_client: 
    init_style:              init
    interval:                21600
    server_url:              https://chef.dev.blueangelsinmypance.com
    validation_client_name:  chef-validator


(yes, i'll go with 1800 interval at a later time in my deployment.)


but this isn't working - an interval line in my client's config doesn't
appear. i'm pretty sure the reason is because there is no interval
line in the template:

    cookbooks/chef-client/templates/default/client.rb.erb

should i modify that template or is there a better "best practices"
way to handle this?

and so, i go ahead and add a line to that template, run the client,
and get an error..

my change:

--- client.rb.erb       2011-10-07 00:53:10.000000000 +0000
+++ client.rb.erb.new   2011-10-07 00:53:03.000000000 +0000
@@ -13,6 +13,7 @@
 # Using default node name
  <% end -%>
   
   +interval         "<%= node["chef_client"]["interval"] %>"
    file_backup_path   "<%= node["chef_client"]["backup_path"] %>"
    file_cache_path    "<%= node["chef_client"]["cache_path"] %>"




the error on the client:

[Fri, 07 Oct 2011 00:41:54 +0000] INFO: template[/etc/chef/client.rb] sending 
create action to ruby_block[reload_client_config] (delayed)
[Fri, 07 Oct 2011 00:41:54 +0000] INFO: Processing 
ruby_block[reload_client_config] action create (chef-client::config line 48)
[Fri, 07 Oct 2011 00:41:54 +0000] INFO: ruby_block[reload_client_config] 
called
[Fri, 07 Oct 2011 00:41:54 +0000] INFO: template[/etc/sysconfig/chef-client] 
sending restart action to service[chef-client] (delayed)
[Fri, 07 Oct 2011 00:41:54 +0000] INFO: Processing service[chef-client] 
action restart (chef-client::service line 73)
[Fri, 07 Oct 2011 00:42:00 +0000] INFO: service[chef-client] restarted
[Fri, 07 Oct 2011 00:42:00 +0000] INFO: Chef Run complete in 63.332668 seconds
[Fri, 07 Oct 2011 00:42:00 +0000] INFO: Running report handlers
[Fri, 07 Oct 2011 00:42:00 +0000] INFO: Report handlers complete
[Fri, 07 Oct 2011 00:42:00 +0000] ERROR: TypeError: can't convert String into 
time interval
[Fri, 07 Oct 2011 00:42:00 +0000] FATAL: Stacktrace dumped to 
/var/cache/chef/chef-stacktrace.out
[Fri, 07 Oct 2011 00:42:00 +0000] ERROR: Sleeping for 21600 seconds before 
trying again
/usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/../lib/chef/application/client.rb:282:in
 `select': can't convert String into time interval (TypeError)
    from 
/usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/../lib/chef/application/client.rb:282:in
 `client_sleep'
    from 
/usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/../lib/chef/application/client.rb:263:in
 `run_application'
    from 
/usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/../lib/chef/application/client.rb:229:in
 `loop'
    from 
/usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/../lib/chef/application/client.rb:229:in
 `run_application'
    from 
/usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/../lib/chef/application.rb:67:in 
`run'
    from /usr/lib/ruby/gems/1.8/gems/chef-0.10.4/bin/chef-client:26
    from /usr/bin/chef-client:19:in `load'
    from /usr/bin/chef-client:19



halp? thanks!

kallen







Archive powered by MHonArc 2.6.16.

§