Issue #2106 has been reported by micah.
----------------------------------------
Bug #2106: augeas provider is not applying
http://projects.reductivelabs.com/issues/2106
Author: micah
Status: Unreviewed
Priority: High
Assigned to:
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
-~----------~----~----~----~------~----~------~--~---