- From: Carlos Camacho <
>
- To: "
" <
>
- Subject: [chef] Re: Re: Creating organizations using CHEF::REST
- Date: Tue, 15 Sep 2015 17:11:59 +0200
Thanks a lot for the info.
Now I'm able to use the pivotal client as an actor or the current user
in the old Chef Server Web UI.
I am able to log-in, logout and get the environments using a default
organization name.
I wanted to do a simple test case to see if was easy to adapt the old
web interface to Chef 12.
I think in a few weeks I can have it fully working (I'm doing it
because I like the old interface).
I will let you know then if you want to check-it, test-it or review the code.
Cheers,
Carlos.
On Mon, Sep 14, 2015 at 7:54 PM, Daniel DeLeo
<
>
wrote:
>
>
>
On Monday, September 14, 2015 at 6:45 AM, Carlos Camacho wrote:
>
>
> Hello,
>
>
>
> I'm trying to access the CHEF::REST API to interact with the Chef
>
> server and I must be missing something as the behavior is quite odd.
>
>
>
> Im executing this code:
>
>
>
> #-----------------
>
> require 'rubygems'
>
> require 'chef/config'
>
> require 'chef/log'
>
> require 'chef/rest'
>
>
>
> chef_server_url = 'http://127.0.0.1'
>
> client_name = 'webui'
>
> signing_key_filename = '/etc/opscode/webui_priv.pem'
>
>
This isn’t what you want. The webui key enables a special handling of
>
authentication where you can impersonate any user (this is how you can log
>
in with your username and password, and the webui can make requests to the
>
API server as you). You need to use the pivotal key for these kinds of
>
requests. Though I suppose you could theoretically set the client name to
>
pivotal and use the webui key, but this requires a special header, so it’s
>
more work.
>
>
>
>
> rest = Chef::REST.new(chef_server_url, client_name, signing_key_filename)
>
>
>
> puts rest.get_rest('/organizations/asdf/users/admin')
>
> puts rest.get_rest('/organizations/asdf/clients')
>
> puts rest.get_rest('/organizations/asdf/users')
>
> puts rest.get_rest('/organizations/asdf/nodes')
>
> puts rest.get_rest('/organizations/asdf')
>
>
>
> data = {"username" => "admin", "password" => "4dm1n1str4t0r" }
>
> rest.post_rest('authenticate_user', data)
>
>
>
> data = {"name" => "fdsa", "full_name" => "asdf" }
>
> rest.post_rest('organizations', data)
>
> #-----------------
>
>
>
> Now, the thing is how to configure correctly the client_name/key in
>
> order to have them working properly?
>
> How this client should be configured correctly?
>
>
>
> Depending on the client/key Im getting 401, 403 or empty outputs.
>
>
>
> Thanks!
>
I’d recommend using the code in knife-opc as a reference:
>
https://github.com/chef/knife-opc/
>
>
--
>
Daniel DeLeo
>
>
>
Archive powered by MHonArc 2.6.16.