[augeas-devel] grub lens doesn't match /boot/grub/grub.conf

Greg Swift gregswift at gmail.com
Tue Jan 10 17:42:47 UTC 2012


On Tue, Jan 10, 2012 at 09:51, Nathan Huff <Nathan.Huff at ndsu.edu> wrote:

> On 01/10/2012 09:39 AM, Greg Swift wrote:
>
>>
>>
>> On Tue, Jan 10, 2012 at 09:32, Nathan Huff <Nathan.Huff at ndsu.edu
>> <mailto:Nathan.Huff at ndsu.edu>> wrote:
>>
>>    On 01/09/2012 06:17 PM, David Lutterkort wrote:
>>
>>        On Fri, 2011-12-30 at 13:46 -0600, Nathan Huff wrote:
>>
>>            Since that is the actual file that RedHat uses I think it
>>            should.  I
>>            believe the one line change below would fix it.
>>
>>            diff -ur augeas-0.10.0.orig/lenses/__**grub.aug
>>            augeas-0.10.0/lenses/grub.aug
>>            --- augeas-0.10.0.orig/lenses/__**grub.aug  2011-11-28
>>
>>            17:51:05.000000000 -0600
>>            +++ augeas-0.10.0/lenses/grub.aug       2011-12-30
>>            13:27:13.651145502 -0600
>>            @@ -276,5 +276,6 @@
>>                   (* View: filter *)
>>                   let filter = incl "/boot/grub/menu.lst"
>>                              . incl "/etc/grub.conf"
>>            +               . incl "/boot/grub/grub.conf"
>>
>>
>>        We have /etc/grub.conf in there; that should be a symlink
>>        to /boot/grub/grub.conf. Does that not work for you ?
>>
>>        (I hesitate to make that change because we'll have the same file
>>        show up
>>        twice in the tree, opening the door to all kinds of interesting
>>        conflicts)
>>
>>        David
>>
>>
>>
>>
>>    The problem that I am running into is actually a combination of
>>    augeas and puppet.  The way puppet seems to work with augeas is that
>>    it runs the augeas commands against the existing file and creates a
>>    copy.  It then checks if the copy and the original are the same if
>>    they are it removes the copy and does nothing.  If they aren't it
>>    replaces the original with the copy.  In the /etc/grub.conf case
>>    this causes the symlink to be replaced by a regular file.  Obviously
>>    this is a problem because grub doesn't actually look at /etc/grub.conf.
>>
>>    I can work around this by telling puppet explicitly which lens to
>>    use. I just thought it was weird that the lens matches several files
>>    non of which grub actually reads directly on at least RedHat and I
>>    assume any other recent linux distro.
>>
>>
>> Nathan,
>>
>> Very timely, I'm about to attempt to control grub with puppet+augeas on
>> RHEL systems.  can you post your final that deals with this issue please?
>>
>> thanks
>>
>
> You have to set the incl and lens parameters rather than the context
> parameter.  See below for an example.
>
>  #
>  # remove "rhgb" and "quiet" from every kernel title line, if present
>  #
>  augeas { 'grub.conf/no_rhgb':
>    incl    => '/boot/grub/grub.conf',
>    lens    => 'grub.lns',
>    changes => [
>      'rm title[*]/kernel/rhgb',
>      'rm title[*]/kernel/quiet'
>    ],
>
>  }
>
>
awesome.. thanks

-greg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/augeas-devel/attachments/20120110/8f795543/attachment.htm>


More information about the augeas-devel mailing list