- From: AJ Christensen <
>
- To: chef <
>
- Subject: [chef] Re: Re: Re: Re: Re: Re: Re: Inserting multiple lines through Chef::Util::FileEdit
- Date: Thu, 28 Feb 2013 08:43:28 +1300
I did note that the uncomment line if match LWRP was not completely
implemented :)
Cheers,
AJ
On 28 February 2013 08:00, Sean OMeara
<
>
wrote:
>
Hontestly, these libs are in a need of some love.
>
I have some "file a ticket" tasks in my GTD that I plan to get around to
>
soon.
>
-s
>
>
On Wed, Feb 27, 2013 at 3:30 AM, Oleg Volotov
>
<
>
>
wrote:
>
> The methode 'insert_line_if_no_match(...)' calls only the private one
>
> 'search_match(...)' with the right parameters. This methode makes his
>
> changes only in the variable 'contents'. Try to make a 'f.write_file'
>
> after every call of 'insert_line_if_no_match(...)'.
>
>
>
>> About the mount resource:
>
>> This was some time ago, but I couldn't get the mount resource to create an
>
>> fstab entry. My action is "action [:mount, :enable]", but it doesn't seem
>
>> to do anything to the fstab. I haven't tried to debug it in a while, I'll
>
>> dig into it and see what was the problem that led me to use FileEdit.
>
>>
>
>> If it helps, what I'm mounting is an amazon EBS volume with non-default
>
>> formatting (xfs), attached to my instance during runtime by the right-aws
>
>> gem.
>
>>
>
>>
>
>> On Wed, Feb 27, 2013 at 1:44 AM, Jesse Nelson
>
>> <
>
>
>> wrote:
>
>>
>
>> > Is it not possible to use the mount resource to manage these entries in
>
>> > your fstab ?
>
>> >
>
>> >
>
>> > On Tue, Feb 26, 2013 at 5:40 AM, Joseph Bowman
>
>> <
>wrote:
>
>> >
>
>> >> I've had to do this a lot recently starting to set up our base builds
>
>> as
>
>> >> we move to chef. I've just used embedded bash scripts to get the
>
>> results
>
>> >> I've needed. This is just taking an example from you original email,
>
>> please
>
>> >> check for typos and such before using it. I wrote it out in this email,
>
>> so
>
>> >> it's completely untested.
>
>> >>
>
>> >> bash "update_fstab" do
>
>> >> code <<-EOH
>
>> >> EBS_VOL_DEV_CHECK = $(grep '#{node['mysql']['ebs_vol_dev']} /'
>
>> >> /etc/fstab | wc -l)
>
>> >> if [ $EBS_VOL_DEV_CHECK -lt 0 ]; then
>
>> >> echo '#{node['mysql']['ebs_vol_dev']}
>
>> >> #{node['mysql']['mount_point']} #{node['mysql']['formatting']} noatime
>
>> 0 0'
>
>> >> >> /ec/fstab
>
>> >> fi
>
>> >> EOH
>
>> >> end
>
>> >>
>
>> >> You'd want to update the code block for each instance. I used this to
>
>> >> manage files fstab, hosts and such. Albeit I'm much more comfortable
>
>> with
>
>> >> bash than ruby.
>
>> >>
>
>> >>
>
>> >>
>
>> >> On Tue, Feb 26, 2013 at 8:14 AM, Pete Cheslock
>
>> <
>wrote:
>
>> >>
>
>> >>> Ive never used fileedit before. You should just use a template to
>
>> render
>
>> >>> out the file as you need. It will likely solve your problem.
>
>> >>>
>
>> >>>
>
>> >>>
>
>> >>> On Feb 26, 2013, at 6:25 AM, Prajwal Manjunath
>
>> >>> <
>
>
>> >>> wrote:
>
>> >>>
>
>> >>> > Hi,
>
>> >>> >
>
>> >>> > I'm trying to use the FileEdit util to modify my fstab, but it
>
>> doesn't
>
>> >>> seem to work as expected.
>
>> >>> >
>
>> >>> > This is essentially my code:
>
>> >>> >
>
>> >>> > ruby_block "setup fstab" do
>
>> >>> > not_if "cat /etc/fstab | grep #{node['mysql']['mount_point']} >
>
>> >>> /dev/null"
>
>> >>> > block do
>
>> >>> > f = Chef::Util::FileEdit.new('/etc/fstab')
>
>> >>> > f.insert_line_if_no_match(/^#{node['mysql']['ebs_vol_dev']} /,
>
>> >>> "#{node['mysql']['ebs_vol_dev']} #{node['mysql']['mount_point']}
>
>> >>> #{node['mysql']['formatting']} noatime 0 0")
>
>> >>> > f.insert_line_if_no_match(/^#{node['mysql']['ebs_data_dir']}
>
>> /,
>
>> >>> "#{node['mysql']['ebs_data_dir']} #{node['mysql']['data_dir']} none
>
>> bind")
>
>> >>> > f.insert_line_if_no_match(/^#{node['mysql']['ebs_binlog_dir']}
>
>> >>> /, "#{node['mysql']['ebs_binlog_dir']} #{node['mysql']['data_dir']}
>
>> none
>
>> >>> bind")
>
>> >>> > f.write_file
>
>> >>> > end
>
>> >>> > notifies :run, "execute[mount_all]", :immediately
>
>> >>> > end
>
>> >>> >
>
>> >>> > However, this only adds the first insert_line_if_no_match into the
>
>> >>> file. I confirmed this by removing the first command and it inserted
>
>> the
>
>> >>> second one.
>
>> >>> >
>
>> >>> > Is this by design? Am I really not supposed to run multiple
>
>> >>> insert_line_if_no_match commands in one block on one file?
>
>> >>>
>
>> >>
>
>> >>
>
>> >
Archive powered by MHonArc 2.6.16.