On 20/01/13 17:53, Stephen Sollar wrote:
> I am trying to add multiple new services to /etc/services file. I was
> able to get one entry placed as the last service, but have been unable
> to insert additional entries. 
> 
> augtool> set /files/etc/services/service-name[last()] "DB2_db2inst1_1"

last() in this case is going to overwrite the last entry you already
have in the file, you want to use last()+1 instead.

> augtool> set /files/etc/services/service-name[. = 'DB2_db2inst1_1']/port
> 60001
> augtool> set /files/etc/services/service-name[. =
> 'DB2_db2inst1_1']/protocol tcp
> augtool> save
> Saved 1 file(s)
> 
> cat /etc/services | grep DB_db2inst1_1
> DB2_db2inst1_1               60001/tcp
> 
> I tried using the service-name[last()+1] to add a service after that
> last one but it errors and will not save using augtool. 
> 
> set /files/etc/services/service-name[last()+1] "DB2_db2inst1_2"
> set /files/etc/services/service-name[. = 'DB2_db2inst1_2']/port 60002"
> set /files/etc/services/service-name[. = 'DB2_db2inst1_2']/protocol tcp"

There's a trailing quote on these two lines.

> I would like the output to look like this;
> DB2_db2inst1_1               60001/tcp
> DB2_db2inst1_2               60002/tcp
> 
> Im sure there is a way with Xpath to write to the next line, but I have
> not been successful with it yet. Any thoughts?

The example here works fine for me.  You say it errors - what error does
it give?  You might need to run "print /augeas//error" to get detailed
output.  If you're using Puppet 3, --debug gives the same information.

A slightly better way than using last()+1 is to do this, which has the
bonus of being entirely idempotent - so if the line already exists, it
won't add a second.

set /files/etc/services/service-name[. = 'DB2_db2inst1_2'] "DB2_db2inst1_2"
set /files/etc/services/service-name[. = 'DB2_db2inst1_2']/port 60002
set /files/etc/services/service-name[. = 'DB2_db2inst1_2']/protocol tcp

-- 
Dominic Cleal
Red Hat Engineering

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to