[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 11:39:16 -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=X87/NLoZgAQ7CqCcjD5/rQYCAcgV/4ZpD+7oVM10uZn61gf3YW+JmYLYhv/ywiz+4c Pye+Z3sUydVxt5V0wCEra2F7fq06OLf/jByn/ekxl7XDLQkIiDTf7cjpL4AeFDU1VBB0 98B9dhIiDMUDnf9/WdlGwQxTWlow8NS7xddKw=

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]'



Archive powered by MHonArc 2.6.16.

§