1 Jun 19:29
Calling Chef::Knife::Ssh directly(?)
Miles, Ken <Ken.Miles <at> infogroup.com>
2011-06-01 17:29:17 GMT
2011-06-01 17:29:17 GMT
Folks,
I am investigating switching some of our Ruby scripts from using the
'system' function to calling the Chef libraries directly and am not
having much success. My latest error is:
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/lib/chef/rest/auth_credentials.rb:41:
in `signature_headers': Cannot sign the request without a client name,
check that :node_name is assigned (ArgumentError)
Below is a code snippet.
query = "role:#{role}"
knife_ssh = Chef::Knife::Ssh.new()
knife_ssh.config[:config_file] = conf_file
knife_ssh.config[:identity_file] = params["private_key"]
knife_ssh.config[:node_name] = ENV['HOSTNAME']
knife_ssh.config[:client_name] = ENV['HOSTNAME']
cmd_line = "hostname -f"
knife_ssh.name_args = [query, cmd_line]
sys_status = knife_ssh.run
What am I doing wrong here?
Thanks,
Ken Miles
ken.miles <at> infogroup.com
(Continue reading)
--Noah
On Jun 1, 2011, at 10:29 AM, Miles, Ken wrote:
> Folks,
>
> I am investigating switching some of our Ruby scripts from using the
> 'system' function to calling the Chef libraries directly and am not
> having much success. My latest error is:
>
> /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/lib/chef/rest/
> auth_credentials.rb:41:
> in `signature_headers': Cannot sign the request without a client name,
> check that :node_name is assigned (ArgumentError)
>
> Below is a code snippet.
>
> query = "role:#{role}"
> knife_ssh = Chef::Knife::Ssh.new()
> knife_ssh.config[:config_file] = conf_file
> knife_ssh.config[:identity_file] = params["private_key"]
> knife_ssh.config[:node_name] = ENV['HOSTNAME']
> knife_ssh.config[:client_name] = ENV['HOSTNAME']
> cmd_line = "hostname -f"
> knife_ssh.name_args = [query, cmd_line]
> sys_status = knife_ssh.run
>
RSS Feed