Issue #2106 has been updated by micah.

Hi,

Thanks for testing this out... Its odd that it is working for you, and not for 
me. 

I'm definitely running as root. 

I'm using the 0.4.0 libaugeas0 and the 0.2.0-2 libaugeas-ruby bindings.

Can you think of anything I should look into, or try? Let me know if you need 
any more information.
----------------------------------------
Bug #2106: augeas provider is not applying
http://projects.reductivelabs.com/issues/2106

Author: micah
Status: Accepted
Priority: High
Assigned to: [email protected]
Category: unknown
Target version: 
Complexity: Unknown
Affected version: 0.24.8
Keywords: 


I've got an augeas puppet definition for a new logrotate snippet, there 
currently is no /etc/logrotate.d/sympa, but I wish to create one with augeas. 
This works fine with augtool, however, puppet isn't applying it, nor am I 
seeing any info about why not. This is using puppet 0.24.8rc1.

The puppet chunk is:

<pre>
augeas {
    "logrotate_sympa":
      context => "/files/etc/logrotate.d/sympa/rule",
      changes => [ "set file /var/log/sympa/*.log", "set rotate 3", 
                   "set schedule weekly",
                   "set compress compress", "set missingok missingok",
                   "set ifempty notifempty",
                   "set copytruncate copytruncate" ]
}
</pre>

Running puppet with debug tells me:

<pre>
debug: Augeas[logrotate_sympa](provider=augeas): Opening augeas with
root /, lens path , flags 0
debug: Augeas[logrotate_sympa](provider=augeas): Augeas version 0.4.0 is
installed
debug: Augeas[logrotate_sympa](provider=augeas): Will attempt to save and only 
run if files changed
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/file", "/var/log/sympa/*.log"]
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/rotate", "3"]
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/schedule", "weekly"]
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/compress", "compress"]
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/missingok", "missingok"]
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/ifempty", "notifempty"]
debug: Augeas[logrotate_sympa](provider=augeas): sending command 'set'
with params ["/files/etc/logrotate.d/sympa/rule/copytruncate",
"copytruncate"]
debug: Augeas[logrotate_sympa](provider=augeas): Skipping becuase no
files were changed
</pre>

> (1) Is the provider able to make simple changes to existing files (like
> add an alias for localhost in /etc/hosts ?

I try and add an alias for localhost in /etc/hosts, I did the following:

<pre>
  augeas { "host foo":
    context => "/files/etc/hosts",
    changes => "set 1/alias foo";
  }
</pre>

I tried it without the context as well:

<pre>
  augeas { "host foo":
    changes => "set /files/etc/hosts/1/alias foo";
  }
</pre>

Both of these resulted in no change, and this debug:

<pre>
debug: Augeas[host foo](provider=augeas): Opening augeas with root /,
lens path , flags 0
debug: Augeas[host foo](provider=augeas): Augeas version 0.4.0 is
installed
debug: Augeas[host foo](provider=augeas): Will attempt to save and only
run if files changed
debug: Augeas[host foo](provider=augeas): sending command 'set' with
params ["/files/etc/hosts/1/alias", "foo"]
debug: Augeas[host foo](provider=augeas): Skipping becuase no files were
changed
debug: Augeas[host foo](provider=augeas): Closed the augeas connection
</pre>

It looks right, but it doesn't seem to change anything. Using augtool, I
can make this change:

<pre>
augtool> set /files/etc/hosts/1/alias foo
augtool> save
augtool> quit
# cat /etc/hosts
127.0.0.1                     localhost foo
</pre>

> (2) make sure that /etc/logrotate.d exists and is writable. Augeas will
> _not_ create missing directories, but it should create new files without
> problems, assuming the user that is running Augeas is allowed to create
> the file - watch out for SELinux. For puppet, the effective user is

This is fine.

> (3) Try the equivalent of your Augeas resource in augtool (you can write
> augtool commands into a file and then run them with 'augtool <
> commands.txt', I recommend doing that in a fake root in which you copy
> the relevant files from /etc - use the -r option for augtool to point it
> to that fake root. That should tell us if the problem is with the
> provider or Augeas itself.

This works fine:

<pre>
# ls /etc/logrotate.d/sympa
ls: /etc/logrotate.d/sympa: No such file or directory
# augtool
augtool> set /files/etc/logrotate.d/sympa/rule/file /var/log/sympa/*.log
augtool> save
augtool> quit
# cat /etc/logrotate.d/sympa
/var/log/sympa/*.log {
</pre>


----------------------------------------
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" 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-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to