[chef] Re: RE: Re: RE: Re: RE: Re: How do I set a path for roles, environments, and data bags in my knife.rb?


Chronological Thread 
  • From: AJ Christensen < >
  • To: " " < >
  • Subject: [chef] Re: RE: Re: RE: Re: RE: Re: How do I set a path for roles, environments, and data bags in my knife.rb?
  • Date: Sat, 10 Jan 2015 09:04:14 +1300

What version of chef? gist your knife.rb

cheers,

--aj

On Sat, Jan 10, 2015 at 8:46 AM, Stephen Corbesero
< >
 wrote:
> I still not have any success....
>
> I also found there is an optional knife[:repository ], but setting that ior 
> knife[:chef_repo_path] had no effect.
>
> I still find some references to a repo_path directive in the knife.rb file, 
> even an implied  mention to setting role paths   by the esteemed Joshua 
> Tiimberman at 
> http://jtimberman.housepub.org/blog/2013/02/01/local-only-knife-configuration/
>
> But nothing I have so far has worked.
>
>
> --
> Stephen Corbesero, DevOps Engineer
>
>
> -----Original Message-----
> From: AJ Christensen 
> [mailto:
> Sent: Wednesday, January 07, 2015 4:08 PM
> To: 
> 
> Subject: [chef] Re: RE: Re: RE: Re: How do I set a path for roles, 
> environments, and data bags in my knife.rb?
>
> Use Ruby's File#expand_path or similar to build the chef_repo_path by 
> expanding it. I doubt it understands the '..'.
>
> You can use something like `File.dirname(__FILE__)` inside of knife.rb to 
> get the directory enclosing it, then join/expand from there.
>
> cheers,
>
> --aj
>
> On Thu, Jan 8, 2015 at 10:03 AM, Stephen Corbesero 
> < >
>  wrote:
>>
>> Being able to set chef_repo_path does look like the cleanest way.  And it 
>> makes sense to know the top of the tree.
>>
>> How do I set it in my knife config.
>>
>> I just tried both of the following
>>
>>    chef_repo_path "#{current_dir}/.."
>>    knife[:chef_repo_path] = "#{current_dir}/.."
>>
>> where current_dir is expected to be the directory of my knife.rb, which is 
>> in .chef under the chef-repo.
>>
>>
>>
>> --
>> Stephen Corbesero, DevOps Engineer
>>
>>
>> -----Original Message-----
>> From: AJ Christensen 
>> [mailto:
>> Sent: Wednesday, January 07, 2015 3:48 PM
>> To: 
>
>> Subject: [chef] Re: RE: Re: How do I set a path for roles, environments, 
>> and data bags in my knife.rb?
>>
>> cookbook_path is indeed an array of strings or a string. when
>> chef_repo_path is set, it is inferred to be
>> `chef_repo_path/cookbooks`. otherwise it defaults to
>> [chef_repo_path/cookbooks, chef_repo_path/site-cookbooks]
>>
>> $ knife upload environments/dev.json
>>
>> 'environment from file' takes a path to a file to upload. I used to
>> use it with shell loops:
>>
>> $ for i in environments/*.json ; do knife environment from file $i ;
>> done
>>
>> I think chef_repo_path is what you are after. With that set correctly,
>> environments inferred default will be correct, e.g.
>> CHEF_REPO_PATH/environments.
>https://github.com/opscode/chef/blob/master/lib/chef/config.rb#L186
>>
>> hope this helps~
>>
>> cheers,
>>
>> --aj
>>
>> On Thu, Jan 8, 2015 at 9:39 AM, Stephen Corbesero
>> < >
>>  wrote:
>>> Thanks for the link..  I am looking at it now.
>>>
>>> According to my understanding of that code, it looks like it should be 
>>> trying to set the default "top" to be the directory above the cookbooks 
>>> path.  I have two issues with that.
>>>
>>> 1. The cookbook path is usually an array, not a simple string.  I even 
>>> made my cookbook path just a string, and it still failed.
>>>
>>> 2. When I try to depend on a path for the other objects, I get an error 
>>> message like the following:
>>>
>>>          % knife environment from file dev.json
>>>          ERROR: Could not find or open file 'dev.json' in current 
>>> directory or in 'environments/dev.json'
>>>
>>> Which is implying that path it is using for the lookup is just
>>> "environments/" and not anything that I have set, or anything that
>>> knows about the top of the chef-repo
>>>
>>>
>>>
>>> --
>>> Stephen Corbesero, DevOps Engineer
>>>
>>>
>>> -----Original Message-----
>>> From: AJ Christensen 
>>> [mailto:
>>> Sent: Wednesday, January 07, 2015 3:23 PM
>>> To: 
>>> 
>>> Subject: [chef] Re: How do I set a path for roles, environments, and data 
>>> bags in my knife.rb?
>>>
>>> https://github.com/opscode/chef/blob/master/lib/chef/config.rb#L111-L
>>> 128
>>>
>>> On Thu, Jan 8, 2015 at 9:13 AM, Stephen Corbesero 
>>> < >
>>>  wrote:
>>>>
>>>>
>>>> The knife.rb lets you specify a cookbook_path.
>>>>
>>>>
>>>>
>>>> I want to get the same effect for roles, environments, and data bags.
>>>>
>>>>
>>>>
>>>> I have the following in my knife.rb file
>>>>
>>>>
>>>>
>>>> current_dir = File.dirname(__FILE__)
>>>>
>>>> cookbook_path  ["#{current_dir}/../cookbooks"]
>>>>
>>>>
>>>>
>>>> # the following don't seem to work.  :(
>>>>
>>>>
>>>>
>>>> role_path           ["#{current_dir}/../roles"]
>>>>
>>>> environment_path   ["#{current_dir}/../environments"]
>>>>
>>>> data_bag_path       ["#{current_dir}/../data_bags"]
>>>>
>>>>
>>>>
>>>> I remember seeing how to do this somewhere along time ago, but I
>>>> can’t find the original reference.  I have been looking, and I see
>>>> several references that strongly imply these should work, or
>>>> something similar like making the object name plural (roles_path)
>>>>
>>>>
>>>>
>>>> I have tried several permutations, including  statements like
>>>> knife[:role_path] = …, but nothing seems to work.
>>>>
>>>>
>>>>
>>>> Is it possible  What is the correct format?
>>>>
>>>>
>>>>
>>>> Thanks in advance.
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Stephen Corbesero, DevOps Engineer
>>>>
>>>> Synchronoss - Mobile Innovation for a Connected World
>>>>
>>>> 
>>>>  | www.synchronoss.com
>>>>
>>>>
>>>>
>>>>



Archive powered by MHonArc 2.6.16.

§