Hi Chef folks-
I’m very new to Chef. I’m trying to update the nodes on my chef server using Chef::REST, and I’m having trouble getting authenticated.
When I run this snippet:
start snippet
require 'chef’
require ‘chef/rest’
user = "nick"
pass = "whatever"
chefServer = "https://my-chef-server"
validationToken = “something”
r = Chef::REST.new(chefServer)
r.register(user,pass,validationToken)
r = Chef::REST.new(chefServer)
r.authenticate(user, pass)
end snippet
I get this output:
start output
[Sun, 30 Aug 2009 05:02:09 +0000] DEBUG: Registering nick for an openid
[Sun, 30 Aug 2009 05:02:09 +0000] DEBUG: Sending HTTP Request via GET to /registrations/nick
[Sun, 30 Aug 2009 05:02:09 +0000] DEBUG: Sending HTTP Request via POST to /registrations
[Sun, 30 Aug 2009 05:02:09 +0000] DEBUG: Authenticating nick via openid
[Sun, 30 Aug 2009 05:02:09 +0000] DEBUG: Sending HTTP Request via POST to /openid/consumer/start
/usr/lib/ruby/1.8/net/http.rb:2097:in error!': 400 "Bad Request" (Net::HTTPServerException) from /usr/lib/ruby/gems/1.8/gems/chef-0.7.8/lib/chef/rest.rb:233:in
run_request’
from /usr/lib/ruby/gems/1.8/gems/chef-0.7.8/lib/chef/rest.rb:95:in post_rest' from /usr/lib/ruby/gems/1.8/gems/chef-0.7.8/lib/chef/rest.rb:68:in
authenticate’
from go.rb:13
end output
Also, I noticed this in the Apache error.log:
start error.log
Params: {“submit”=>“Verify”, “action”=>“start”, “controller”=>“chef_server_slice/openid_consumer”, “openid_identifier”=>“http://localhost:4001/openid/server/node/nick”}
~ Discovery failed for http://localhost:4001/openid/server/node/nick: Failed to fetch identity URL http://localhost:4001/openid/server/node/nick : Error fetching http://localhost:4001/openid/server/node/nick: Connection refused - connect(2) - (Merb::ControllerExceptions::BadRequest)
/usr/lib/ruby/gems/1.8/gems/chef-server-slice-0.7.8/app/controllers/openid_consumer.rb:41:in start' /usr/lib/ruby/gems/1.8/gems/merb-core-1.0.12/lib/merb-core/controller/abstract_controller.rb:315:in
send’
/usr/lib/ruby/gems/1.8/gems/merb-core-1.0.12/lib/merb-core/controller/abstract_controller.rb:315:in `_call_action’
[snip…]
end error.log
It looks like the registration part is working. In the web UI I can see the “nick” Registration is validated.
I have chef-clients on other machines that are successfully authenticating and running recipes just fine.
Is there something that I am missing about using Chef::REST? Is there a better library I should try using for RESTful Node management?
Thanks.
-Nick