[chef] Re: Re: Re: Re: Re: Re: Roles to JSON broken on Chef-Solo


Chronological Thread 
  • From: consiliens < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Roles to JSON broken on Chef-Solo
  • Date: Tue, 20 Jul 2010 12:49:14 -0600
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=w65xaLe5MRCAFNhulHDZrR/XvGOUWxmVLaSjSkzR0knzsaP/ta43hwpBleROhJe0ZP sqleK1kE4XUl7TCb3KM6776w0+u4T66ha2DNdqisTMVl2yam7heHMHfc/m+YASc/n8gy Qs3zTo7l2t8ADOMMpfKHCqOPoxOnWUYFOW3eU=

On 07/20/2010 11:39 AM, consiliens wrote:
On 07/20/2010 10:30 AM, Daniel DeLeo wrote:
On Tue, Jul 20, 2010 at 9:24 AM, 
consiliens< >
 wrote:
On 07/20/2010 09:53 AM, Daniel DeLeo wrote:

On Mon, Jul 19, 2010 at 6:19 PM, 
consiliens< >
wrote:

On 07/19/2010 06:36 PM, consiliens wrote:

On 07/19/2010 12:07 PM, Daniel DeLeo wrote:

On Fri, Jul 16, 2010 at 1:01 PM, 
consiliens< >
wrote:

Why does chef-solo require a key to generate a JSON
representation of
a role
for use with chef-solo?

`rake roles` calls `knife role from file` which assumes you want to
upload the role to the server. With chef solo, you are not
required to
convert the role to JSON before using it, however--you should be
able
to just configure your `role_path` in solo.rb and run with it. I see
this is not documented on the roles page in the wiki, and the chef
solo page states that you have to convert to JSON first, which is
incorrect. I don't have time to fix these right now, but I'll make a
note to fix them as I'm able. If you're willing to fix them, that
would be greatly appreciated.

Dan DeLeo


I'm willing to fix them. Thank you for explaining how to use roles
with
chef-solo.

I tried role_path and it's still not working. I'll update the wiki
once
it
works. Here's the code I'm using.

What error are you getting? `Chef::Exceptions::RoleNotFound`?
Unfortunately, there's not a lot of debug info to be had here, but if
you're willing to hack some into the code, here's where you'd do it:

http://github.com/opscode/chef/blob/5f8f81915cfa2bc60cfd5d0cb2899a1188d8731c/chef/lib/chef/role.rb#L253-267


HTH,
Dan DeLeo

There is no error. The cookbooks just never run. I'm using the exact
same
files on the Opscode platform without issue. Is setting node_name the
proper way to tell chef-solo which role to apply?

I'll add the debug info and see what happens.

Oh, looking at your command-line invocation of chef-solo, it seems
like you need to also provide a JSON file with a run_list that
specifies which roles chef should use:
http://wiki.opscode.com/display/chef/chef+Solo#ChefSolo-JSON%2CAttributesandRecipes



That worked. I'll update the wiki.

sudo chef-solo --config ./solo.rb --json-attributes ./run_list.json

$ cat run_list.json
{
"run_list": [
"role[nginx]"
]
}


It would be nice if there was a --ruby-attributes option. run_list.rb
could use the Ruby DSL.
run_list 'role[nginx]'

I updated the wiki.

http://wiki.opscode.com/pages/diffpagesbyversion.action?pageId=1179893&selectedPageVersions=16&selectedPageVersions=12

The CAPTCHA on every edit combined with no preview button made it difficult to contribute. It would be nice if Knife was able to locally convert between the Ruby DSL and the JSON syntax.



Archive powered by MHonArc 2.6.16.

§