augeas { "$name": context => "/files", changes => "set /etc/exports/foo bar", require => File["/etc/exports"], } As you can see, I''ve got a very simple resource defined for testing purposes but am seeing this error on the client. Can someone point me in the right direction? err: //Node[e5puppetclient1]/Nfs::Export[/foo]/Augeas[/foo]/returns: change from need_to_run to 0 failed: Save failed with return code false --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
windowsrefund wrote:> augeas { "$name": > context => "/files", > changes => "set /etc/exports/foo bar", > require => File["/etc/exports"], > } > >Augeas will validate the structure of what you are setting. Look in /usr/share/augeas/lenses/exports.lns for a description of the regular expression voodoo. My guess is that you are not setting a valid structure. -- bk --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Bryan, Thanks so much for the pointer. I think I''m on the right track now but could use a hand understanding why I''m getting this error when attempting to write out to disk augtool> print /files/etc/exports/ /files/etc/exports /files/etc/exports/dir = "/foo" /files/etc/exports/dir/client = "foo.example.com" /files/etc/exports/dir/option = "rw" augtool> save /usr/share/augeas/lenses/exports.aug:17.16-19.58:Short split for concat Saving failed On Jan 15, 4:27 pm, Bryan Kearney <bkear...@redhat.com> wrote:> windowsrefund wrote: > > augeas { "$name": > > context => "/files", > > changes => "set /etc/exports/foo bar", > > require => File["/etc/exports"], > > } > > Augeas will validate the structure of what you are setting. Look in > /usr/share/augeas/lenses/exports.lns for a description of the regular > expression voodoo. My guess is that you are not setting a valid structure. > > -- bk--~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Robin Lee Powell
2009-Jan-15 22:21 UTC
How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
On Thu, Jan 15, 2009 at 04:27:20PM -0500, Bryan Kearney wrote:> > windowsrefund wrote: > > augeas { "$name": > > context => "/files", > > changes => "set /etc/exports/foo bar", > > require => File["/etc/exports"], > > } > > > > > > Augeas will validate the structure of what you are setting. Look > in /usr/share/augeas/lenses/exports.lns for a description of the > regular expression voodoo. My guess is that you are not setting a > valid structure.Yes, you have to actually set something that matches the structure of the file in question, which varies by file. Most of the lenses have shit for documentation, unfortunately, and this one is no exception. So, the easiest thing to do is to set up the file with some examples (I pulled examples from the bottom of "man 5 exports") and see what they look like: $ augtool augtool> ls /files/etc/exports/ comment[1] = /etc/exports: the access control list for filesystems which may be exported comment[2] = to NFS clients. See exports(5). comment[3] = sample /etc/exports file dir[1]/ = / dir[2]/ = /projects dir[3]/ = /usr dir[4]/ = /home/joe It took several tries to get this; it turns out the augeas lens for this file is a bit pickier than it should be: it won''t accept: /pub (ro,insecure,all_squash) Anyways, from here you can investigate the structure, like so: augtool> ls /files/etc/exports/dir[1] client[1]/ = master client[2]/ = trusty The corresponding line in the file is: / master(rw) trusty(rw,no_root_squash) Digging further: augtool> ls /files/etc/exports/dir[1]/client[1] option = rw So, if you want to add a new entry, you''d do something like this: augtool> set /files/etc/exports/dir[10000] /foo augtool> set /files/etc/exports/dir[last()]/client[1] weeble augtool> set /files/etc/exports/dir[last()]/client[1]/option[1] ro augtool> set /files/etc/exports/dir[last()]/client[1]/option[2] all_squash augtool> save Saved 1 file(s) Which creates the line: /foo weeble(ro,all_squash) Doing this in Puppet is left as an exercise for the reader. I''ll go see about getting better docs in Augeas for this thing. -Robin -- They say: "The first AIs will be built by the military as weapons." And I''m thinking: "Does it even occur to you to try for something other than the default outcome?" -- http://shorl.com/tydruhedufogre http://www.digitalkingdom.org/~rlpowell/ *** http://www.lojban.org/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Thu, Jan 15, 2009 at 02:10:57PM -0800, windowsrefund wrote:> > Bryan, > > Thanks so much for the pointer. I think I''m on the right track now but > could use a hand understanding why I''m getting this error when > attempting to write out to disk > > augtool> print /files/etc/exports/ > /files/etc/exports > /files/etc/exports/dir = "/foo" > /files/etc/exports/dir/client = "foo.example.com" > /files/etc/exports/dir/option = "rw" > augtool> save > /usr/share/augeas/lenses/exports.aug:17.16-19.58:Short split for > concat > Saving failedBecause this:> /files/etc/exports/dir/option = "rw"is wrong. You want: /files/etc/exports/dir/client/option = "rw" But also, see my other mail for how to not destroy your old lines when you add new ones. -Robin -- They say: "The first AIs will be built by the military as weapons." And I''m thinking: "Does it even occur to you to try for something other than the default outcome?" -- http://shorl.com/tydruhedufogre http://www.digitalkingdom.org/~rlpowell/ *** http://www.lojban.org/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks so much :) On Jan 15, 5:22 pm, Robin Lee Powell <rlpow...@digitalkingdom.org> wrote:> On Thu, Jan 15, 2009 at 02:10:57PM -0800, windowsrefund wrote: > > > Bryan, > > > Thanks so much for the pointer. I think I''m on the right track now but > > could use a hand understanding why I''m getting this error when > > attempting to write out to disk > > > augtool> print /files/etc/exports/ > > /files/etc/exports > > /files/etc/exports/dir = "/foo" > > /files/etc/exports/dir/client = "foo.example.com" > > /files/etc/exports/dir/option = "rw" > > augtool> save > > /usr/share/augeas/lenses/exports.aug:17.16-19.58:Short split for > > concat > > Saving failed > > Because this: > > > /files/etc/exports/dir/option = "rw" > > is wrong. You want: > > /files/etc/exports/dir/client/option = "rw" > > But also, see my other mail for how to not destroy your old lines > when you add new ones. > > -Robin > > -- > They say: "The first AIs will be built by the military as weapons." > And I''m thinking: "Does it even occur to you to try for something > other than the default outcome?" --http://shorl.com/tydruhedufogrehttp://www.digitalkingdom.org/~rlpowell/***http://www.lojban.org/--~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Now that I''m more comfortable working with the schemas of each supported file, I''m seeing a potential issue when it comes to appending. Is there a way to determine the length of each object so I can avoid doing things like /files/etc/exports/dir[100] ? Best, Adam On Jan 15, 5:22 pm, Robin Lee Powell <rlpow...@digitalkingdom.org> wrote:> On Thu, Jan 15, 2009 at 02:10:57PM -0800, windowsrefund wrote: > > > Bryan, > > > Thanks so much for the pointer. I think I''m on the right track now but > > could use a hand understanding why I''m getting this error when > > attempting to write out to disk > > > augtool> print /files/etc/exports/ > > /files/etc/exports > > /files/etc/exports/dir = "/foo" > > /files/etc/exports/dir/client = "foo.example.com" > > /files/etc/exports/dir/option = "rw" > > augtool> save > > /usr/share/augeas/lenses/exports.aug:17.16-19.58:Short split for > > concat > > Saving failed > > Because this: > > > /files/etc/exports/dir/option = "rw" > > is wrong. You want: > > /files/etc/exports/dir/client/option = "rw" > > But also, see my other mail for how to not destroy your old lines > when you add new ones. > > -Robin > > -- > They say: "The first AIs will be built by the military as weapons." > And I''m thinking: "Does it even occur to you to try for something > other than the default outcome?" --http://shorl.com/tydruhedufogrehttp://www.digitalkingdom.org/~rlpowell/***http://www.lojban.org/--~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Peter Meier
2009-Jan-15 22:43 UTC
Re: How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
Hi> Doing this in Puppet is left as an exercise for the reader. I''ll > go see about getting better docs in Augeas for this thing.would be nice if somebody could document her/his experiences with puppet and augeas on the wiki. cheers pete --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Not that I''m aware of. You can use last() instead of a number (and, in fact, you have to in this case; see my long mail), but for appending the current standard is to use a very large number (like 10000). A bit weak, I know. Feel free to complain to the Augeas mailing list. -Robin On Thu, Jan 15, 2009 at 02:43:02PM -0800, windowsrefund wrote:> > Now that I''m more comfortable working with the schemas of each > supported file, I''m seeing a potential issue when it comes to > appending. Is there a way to determine the length of each object > so I can avoid doing things like /files/etc/exports/dir[100] ? > > Best, > Adam > > > On Jan 15, 5:22 pm, Robin Lee Powell <rlpow...@digitalkingdom.org> > wrote: > > On Thu, Jan 15, 2009 at 02:10:57PM -0800, windowsrefund wrote: > > > > > Bryan, > > > > > Thanks so much for the pointer. I think I''m on the right track now but > > > could use a hand understanding why I''m getting this error when > > > attempting to write out to disk > > > > > augtool> print /files/etc/exports/ > > > /files/etc/exports > > > /files/etc/exports/dir = "/foo" > > > /files/etc/exports/dir/client = "foo.example.com" > > > /files/etc/exports/dir/option = "rw" > > > augtool> save > > > /usr/share/augeas/lenses/exports.aug:17.16-19.58:Short split for > > > concat > > > Saving failed > > > > Because this: > > > > > /files/etc/exports/dir/option = "rw" > > > > is wrong. You want: > > > > /files/etc/exports/dir/client/option = "rw" > > > > But also, see my other mail for how to not destroy your old lines > > when you add new ones. > > > > -Robin > > > > -- > > They say: "The first AIs will be built by the military as weapons." > > And I''m thinking: "Does it even occur to you to try for something > > other than the default outcome?" --http://shorl.com/tydruhedufogrehttp://www.digitalkingdom.org/~rlpowell/***http://www.lojban.org/ > >-- They say: "The first AIs will be built by the military as weapons." And I''m thinking: "Does it even occur to you to try for something other than the default outcome?" -- http://shorl.com/tydruhedufogre http://www.digitalkingdom.org/~rlpowell/ *** http://www.lojban.org/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Robin Lee Powell
2009-Jan-15 22:48 UTC
Re: How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
On Thu, Jan 15, 2009 at 11:43:50PM +0100, Peter Meier wrote:> > > Doing this in Puppet is left as an exercise for the reader. > > I''ll go see about getting better docs in Augeas for this thing. > > would be nice if somebody could document her/his experiences with > puppet and augeas on the wiki.If you can find a good place to put it, I''ll see about writing something up. -Robin -- They say: "The first AIs will be built by the military as weapons." And I''m thinking: "Does it even occur to you to try for something other than the default outcome?" -- http://shorl.com/tydruhedufogre http://www.digitalkingdom.org/~rlpowell/ *** http://www.lojban.org/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
James Turnbull
2009-Jan-15 22:55 UTC
Re: How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
Robin Lee Powell wrote:> On Thu, Jan 15, 2009 at 11:43:50PM +0100, Peter Meier wrote: >>> Doing this in Puppet is left as an exercise for the reader. >>> I''ll go see about getting better docs in Augeas for this thing. >> would be nice if somebody could document her/his experiences with >> puppet and augeas on the wiki. > > If you can find a good place to put it, I''ll see about writing > something up.http://reductivelabs.com/trac/puppet/wiki/PuppetAugeas Regards James Turnbull -- Author of: * Pulling Strings with Puppet (http://www.amazon.com/gp/product/1590599780/) * Pro Nagios 2.0 (http://www.amazon.com/gp/product/1590596099/) * Hardening Linux (http://www.amazon.com/gp/product/1590594444/)
On Thu, 2009-01-15 at 14:10 -0800, windowsrefund wrote:> Bryan, > > Thanks so much for the pointer. I think I''m on the right track now but > could use a hand understanding why I''m getting this error when > attempting to write out to disk > > augtool> print /files/etc/exports/ > /files/etc/exports > /files/etc/exports/dir = "/foo" > /files/etc/exports/dir/client = "foo.example.com" > /files/etc/exports/dir/option = "rw" > augtool> save > /usr/share/augeas/lenses/exports.aug:17.16-19.58:Short split for > concat > Saving failedWhat version of Augeas are you using ? Or did you edit the output ? augtool shouldn''t print the error on the console, but stick it into /augeas/files/etc/exports/error; with augeas-0.3.5 and the example above, I get augtool> rm /files/etc/exports/* rm : /files/etc/exports/* 18 augtool> set /files/etc/exports/dir /foo augtool> set /files/etc/exports/dir/client foo.example.com augtool> set /files/etc/exports/dir/option rw augtool> save Saving failed augtool> print /augeas/files/etc/exports/error /augeas/files/etc/exports/error = "put_failed" /augeas/files/etc/exports/error/path = "/files/etc/exports/dir" /augeas/files/etc/exports/error/message = "Failed to match /(())(())(())(client/)(((())(client/))*)(())/ with client/option/" which (minus all the redundant () in the regexp) is almost readable ;) David --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
David Lutterkort
2009-Jan-15 23:38 UTC
Re: How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
On Thu, 2009-01-15 at 14:21 -0800, Robin Lee Powell wrote:> Yes, you have to actually set something that matches the structure > of the file in question, which varies by file. Most of the lenses > have shit for documentation, unfortunately, and this one is no > exception.I''d argue there''s even less docs than that ;)> It took several tries to get this; it turns out the augeas lens for > this file is a bit pickier than it should be: it won''t accept: > > /pub (ro,insecure,all_squash)I followed the man page when writing the exports lens, which doesn''t mention anything about omitting the client all together - is that really legal ? On what systems ?> Doing this in Puppet is left as an exercise for the reader. I''ll > go see about getting better docs in Augeas for this thing.Yes, better docs are sorely needed; if you send patches (or even just text that you want to see in there), I''ll add it to the autogenerated lens docs[1] Another way to document at least the expected tree structure would be to generate that from the lens definition, and spit out something like Relax-NG .. but would anybody read that ? David [1] http://augeas.net/docs/references/lenses/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Thu, 2009-01-15 at 14:43 -0800, windowsrefund wrote:> Now that I''m more comfortable working with the schemas of each > supported file, I''m seeing a potential issue when it comes to > appending. Is there a way to determine the length of each object so I > can avoid doing things like /files/etc/exports/dir[100] ?The cleanest way to append is augtool> ins dir after /files/etc/exports/dir[last()] augtool> set /files/etc/exports/dir[last()]/client foo It seems though that insert for the Augeas type won''t work (there''s no way to specify the new label or whether to insert before or after an existing node) David --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Robin Lee Powell
2009-Jan-17 08:18 UTC
Re: How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
On Thu, Jan 15, 2009 at 11:38:39PM +0000, David Lutterkort wrote:> > On Thu, 2009-01-15 at 14:21 -0800, Robin Lee Powell wrote: > > It took several tries to get this; it turns out the augeas lens for > > this file is a bit pickier than it should be: it won''t accept: > > > > /pub (ro,insecure,all_squash) > > I followed the man page when writing the exports lens, which > doesn''t mention anything about omitting the client all together - > is that really legal ? On what systems ?http://linux.die.net/man/5/exports -- last example. AFAICT, all Linux. -Robin -- They say: "The first AIs will be built by the military as weapons." And I''m thinking: "Does it even occur to you to try for something other than the default outcome?" -- http://shorl.com/tydruhedufogre http://www.digitalkingdom.org/~rlpowell/ *** http://www.lojban.org/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Robin Lee Powell
2009-Jan-18 06:05 UTC
Re: How to experiment with Augeas, because the docs suck (was Re: [Puppet Users] Re: augeas error)
On Fri, Jan 16, 2009 at 09:55:42AM +1100, James Turnbull wrote:> Robin Lee Powell wrote: > > On Thu, Jan 15, 2009 at 11:43:50PM +0100, Peter Meier wrote: > >>> Doing this in Puppet is left as an exercise for the reader. > >>> I''ll go see about getting better docs in Augeas for this > >>> thing. > >> would be nice if somebody could document her/his experiences > >> with puppet and augeas on the wiki. > > > > If you can find a good place to put it, I''ll see about writing > > something up. > > http://reductivelabs.com/trac/puppet/wiki/PuppetAugeasDone. It''s not great, but it''s a start. -Robin -- They say: "The first AIs will be built by the military as weapons." And I''m thinking: "Does it even occur to you to try for something other than the default outcome?" -- http://shorl.com/tydruhedufogre http://www.digitalkingdom.org/~rlpowell/ *** http://www.lojban.org/ --~--~---------~--~----~------------~-------~--~----~ 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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---