Issue #2106 has been updated by micah.

Status changed from Accepted to Rejected

This seems to be unrelated to puppet, but rather a problem with my local augeas 
install. I've built and installed 0.5.0 in a clean build environment and it 
works now. 
----------------------------------------
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