On Mon, 2010-02-22 at 16:23 +0000, Paul Elliott wrote:
> I'm just starting to look at using Augeas with Puppet to manage some of
> our configuration files. I thought I would start with a simple task of
> removing an entry from the /etc/hosts file. I'm not finding it simple
> though!
>
> We have a number of hosts with entries in the /etc/hosts file like this:
>
> 127.0.1.1 hostname
>
> We would like to remove these lines. Now I know this can be done with a
> simple exec of sed but if possible I would like to use it as a good test
> exercise with Augeas. Now, it's pretty easy to do this with augtool, as
> follows:
>
> r...@miscreant:/home/pre500# augtool
> augtool> match /files/etc/hosts/*/ipaddr 127.0.1.1
> /files/etc/hosts/4/ipaddr
You can do this by looking for the entries with a single path
expression:
augtool> match /files/etc/hosts/*[ipaddr = '127.0.1.1']
gives you all entries in /etc/hosts with that IP. To remove them, just
do 'rm' instead of 'match'. From your post, I wasn't sure if you had
multiple such entries in /etc/hosts. If you do, and you want to delete
all of them except the one that has 'host.example.com' as a canonical
name, you can say
augtool> rm /files/etc/hosts/*[ipaddr = '127.0.1.1'][canonical !=
'host.example.com]
or, to delete all but the first one:
augtool> rm /files/etc/hosts/*[ipaddr = '127.0.1.1'][position() > 1]
Some docs about this notation is on the Augeas Wiki[1]
David
[1] http://augeas.net/page/Path_expressions
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.