[chef] Re: RE: knife setup problem


Chronological Thread 
  • From: Gilles Devaux < >
  • To:
  • Subject: [chef] Re: RE: knife setup problem
  • Date: Wed, 3 Mar 2010 09:06:26 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; b=JgdDuUmbJdUO/SjRHGZWLc7MJi85phoL+1eXXt9wXBrb011jkRp+PyoXTthg/ondFP b1wWi2LGrnH9pItu0D02/Ek0VlgEXOEc0ARVZbszy0SwkjbiWuBtZZDYD81fdcPcc5Y8 oM0wHxiZh/2iiU52szvr8FNmHcvoLLhcJarfM=

Ahhhhhh "-u chef-validator -k path/to/validation.pem"

I thought knife would use the same flow as chef-client, if personal .pem is 
not there then send the validation.pem but you actually have to do it.

Works now.

Thanks a lot

--Gilles

On Mar 3, 2010, at 6:50 AM, Eric Hankins wrote:

> Hi Gilles,
> 
> I think the problem is that the -f flag for that command specifies where to 
> put the key file belonging to the client that you just created when it's 
> done. So your configuration says "use ~/.chef/gilles.pem to authenticate" 
> but the file doesn't exist yet. For an initial user creation you need to 
> use the validation key, but it doesn't do that by default. When I create a 
> new knife user, here is the command I use:
> 
> knife client create billybob -f path/to/save/billybob.pem -u chef-validator 
> -k path/to/validation.pem
> 
> So the -u says "run this command as this user" and the -k says "and use 
> this key to sign the request". It looks like you have the validation.pem 
> already so I think if you pass that in, you should be set. One thing to 
> remember is that you probably want to set your knife user to be an admin. 
> You can do this by editing the JSON that pops up, or by specifying --admin 
> as an option to the command. You could even pass --no-editor to create an 
> admin user without popping up EDITOR.
> 
> Hope that fixes things for you!
> 
> -- Eric
> 
> 
> 
>> -----Original Message-----
>> From: Gilles Devaux 
>> [mailto:
>> Sent: Tuesday, March 02, 2010 5:24 PM
>> To: 
>
>> Subject: [chef] knife setup problem
>
>> Hi,
>
>> I'm trying to setup knife but I run in a 'cannot read .pem file'
>
>> The first thing I'm trying to do is to get a API Key for knife:
>
>> gilles:.chef gilles$ knife client create gilles -f ~/.chef/gilles.pem -l 
>> debug
>> ERROR: Failed to read the private key /Users/gilles/.chef/gilles.pem:
>> #<Errno::ENOENT: No such file or directory - 
>> /Users/gilles/.chef/gilles.pem>,
>> /Library/Ruby/Gems/1.8/gems/chef-0.8.4/lib/chef/rest.rb:60:in
>> `read'/Library/Ruby/Gems/1.8/gems/chef-0.8.4/lib/chef/rest.rb:60:in
>> `load_signing_key'/Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/rest.rb:49:in
>> `initialize'/Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/api_client.rb:231:in
>> `new'/Library/Ruby/Gems/1.8/gems/chef-0.8.4/lib/chef/api_client.rb:231:in
>> `save'/Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/knife/client_create.rb:47:in
>> `run'/Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/application/knife.rb:110:in
>> `run'/Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/bin/knife:26/usr/bin/knife:19:in
>> `load'/usr/bin/knife:19
>> /Library/Ruby/Gems/1.8/gems/chef-0.8.4/lib/chef/rest.rb:63:in
>> `load_signing_key': I cannot read /Users/gilles/.chef/gilles.pem, which you
>> told me to use to sign requests!
>> (Chef::Exceptions::PrivateKeyMissing)
>>       from /Library/Ruby/Gems/1.8/gems/chef-0.8.4/lib/chef/rest.rb:49:in
>> `initialize'
>>       from /Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/api_client.rb:231:in
>> `new'
>>       from /Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/api_client.rb:231:in
>> `save'
>>       from /Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/knife/client_create.rb:47:in
>> `run'
>>       from /Library/Ruby/Gems/1.8/gems/chef-
>> 0.8.4/lib/chef/application/knife.rb:110:in
>> `run'
>>       from /Library/Ruby/Gems/1.8/gems/chef-0.8.4/bin/knife:26
>>       from /usr/bin/knife:19:in `load'
>>       from /usr/bin/knife:19
>
>> The command is prompting me with
>> {
>> "public_key": null,
>> "name": "gilles",
>> "json_class": "Chef::ApiClient",
>> "admin": false,
>> "chef_type": "client"
>> }
>
>> -> I don't really know what to set here, I tried different input for
>> public_key with the same result.
>
>> This is my knife.rb file
>> log_level                :info
>> log_location             STDOUT
>> node_name                'gilles'
>> client_key               '/Users/gilles/.chef/gilles.pem'
>> validation_client_name   'chef-validator'
>> validation_key           '/Users/gilles/.chef/validation.pem'
>> chef_server_url          'http://chefserver:4000'
>> cache_type               'BasicFile'
>> cache_options( :path => '/Users/gilles/.chef/checksums' ) cookbook_path [
>> '/Users/gilles/Sites/chef/cookbooks',
>> '/Users/gilles/Sites/chef/site-cookbooks' ]
>
>> the validation key is the one created during chef-server install and I can
>> register chef-clients without problems.
>
>> chef rubygem is 0.8.4
>
>> Do I need to setup the dev box as a chef-client for knife to work?
>
>> Any other idea?
>
>> Thanks
>
>> --Gilles
> 
> This e-mail message and any attachments may contain confidential, 
> proprietary or non-public information.  This information is intended solely 
> for the designated recipient(s).  If an addressing or transmission error 
> has misdirected this e-mail, please notify the sender immediately and 
> destroy this e-mail.  Any review, dissemination, use or reliance upon this 
> information by unintended recipients is prohibited.  Any opinions expressed 
> in this e-mail are those of the author personally.




Archive powered by MHonArc 2.6.16.

§