I got it to work, I just had to give it all of the configurations
(port, protocol, comment) then save.

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
set /files/etc/services/service-name[. = 'DB2_db2inst1_2']#comment
"hello"

save

On Jan 21, 3:00 am, Dominic Cleal <[email protected]> wrote:
> On 20/01/13 17:53, Stephen Sollar wrote:
>
> > I am trying to add multiple new services to /etc/servicesfile. 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 [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.

Reply via email to