- From: Juan Jesús Ojeda Croissier <
>
- To:
- Subject: [chef] Re: Re: Re: RE: Re: Most efficient way to handle text in config files (without a template)
- Date: Mon, 30 Jan 2012 00:37:31 +0000
Hi
Time ago I needed something similar and I did a LWRP to manage plain
files using Util::FileEdit. I've just uploaded some improvements and
some examples to the README:
https://github.com/gecos-team/cookbook-conf
And I've also uploaded to the comunity site, in case anyone like to
use from there:
http://community.opscode.com/cookbooks/conf
By the way the Util::FileEdit doesn't implement some methods I needed,
so I added to the cookbook into the 'libraries' directory. But it's
also pending to be merged:
http://tickets.opscode.com/browse/CHEF-2740
I hope this help. And any feedback or suggestion about the LWRP would
be very appreciated.
Thanks
On Sat, Jan 28, 2012 at 3:33 PM, Jesse Campbell
<
>
wrote:
>
Forgot to mention:
>
@oldfile is the file being updated by the template
>
@insertlines is an array (or hash) of hashes
>
each insertline will have ['text'], which is the text to insert, and
>
['insertpoint'] which is what line to search for and insert the
>
['text'] after.
>
>
On Sat, Jan 28, 2012 at 10:00, Jesse Campbell
>
<
>
>
wrote:
>
> The way I handled it doesn't at all meet your requirement... i did use
>
> a template.
>
> It isn't the cleanest, and I wish I could switch to the Util::FileEdit
>
> method, as that is much cleaner... but it doesn't seem to serve the
>
> same purpose.
>
> This checks if my line text exists, and if it does not it adds it at a
>
> specific point that I specify. If you didn't care where in the file it
>
> went, you could skip the insertpoint piece, and just append to
>
> 'output'
>
>
>
> Here's the template:
>
>
>
> <% output = File.read(@oldfile) -%>
>
> <% @insertlines.each do |line| -%>
>
> <% unless (output.match(/^#{line['text']}$/i)) then -%>
>
> <% output =
>
> output.sub(/^(#{line['insertpoint']})$/,"\\1\n#{line['text']}") -%>
>
> <% end -%>
>
> <% end -%>
>
> <%= output -%>
>
>
>
> -Jesse
>
>
>
> On Fri, Jan 27, 2012 at 13:24, Max Gorbul
>
> <
>
>
> wrote:
>
>> Hello Van,
>
>>
>
>> here is an example of handling config files by chef _without_ template you
>
>> might be interested in.
>
>>
>
>> http://goo.gl/qe2Wn
>
>>
>
>> Thank you,
>
>> Max
>
>>
>
>>
>
>> On Fri, Jan 27, 2012 at 10:15 AM, Van Fossan,Randy
>
>> <
>
>
>> wrote:
>
>>>
>
>>> I'll look into using include(s). I am not sure if I can though.
>
>>>
>
>>> -----Original Message-----
>
>>> From: Jake Vanderdray
>
>>> [mailto:
>
>>> Sent: Friday, January 27, 2012 9:58 AM
>
>>> To:
>
>>>
>
>>> Subject: [chef] Re: Most efficient way to handle text in config files
>
>>> (without a template)
>
>>>
>
>>> Does this config file allow you to do includes? If you can separate the
>
>>> chef values into a separate file and include that, you'll be able to use
>
>>> a
>
>>> template and that's a lot easier/cleaner.
>
>>>
>
>>> Jake.
>
>>>
>
>>> On Thu, Jan 26, 2012 at 3:01 PM, Van Fossan,Randy
>
>>> <
>
>
>>> wrote:
>
>>> > Anyone know the best way (most efficient) to handle text entries in
>
>>> > files without using Templates? Ensuring multiple entries exist in a
>
>>> > file from a cookbook (array) attribute. If they are overwritten,
>
>>> > they would be re-added.
>
>>> >
>
>>> >
>
>>> >
>
>>> > I know how to do this with perl and bash, but it would be a little
>
>>> > more resource intensive than I would like.
>
>>> >
>
>>> >
>
>>> >
>
>>> > The configuration file in question is changing a few times a week
>
>>> > under control of a process that I cannot modify, but I still need to
>
>>> > ensure that certain information is in the resultant configuration file.
>
>>> >
>
>>> >
>
>>> >
>
>>> > Thanks to everyone who has been helping this newbie along..
>
>>> >
>
>>> > Randy
>
>>>
>
>>>
>
>>
--
Juanje
Archive powered by MHonArc 2.6.16.