Hi,
I am running puppet v.0.23.2 on Debian etch with apache2. The apache2 directory is the standard debian apache2 directory with symlinks in directories like /etc/apache2/sites-enabled linking to /etc/apache2/sites-available like so:
ls -lart modules/apache/files/example.com/apache2/sites-enabled/
lrwxrwxrwx 1 puppet puppet 49 2007-11-09 14:58 002-mine01.example.com -> ../sites-available/mine01.example.com.
lrwxrwxrwx 1 puppet puppet 42 2007-11-09 14:58 001-example.com -> ../sites-available/example.com
lrwxrwxrwx 1 puppet puppet 36 2007-11-09 14:58 000-default -> /etc/apache2/sites-available/default
When I run this syntax in an apache module:
file { "/etc/apache2":
source => "puppet://puppet-master.example.com/www-au/apache2",
recurse => true,
owner => "root",
group => "root",
links => follow,
}
symlinks are created as files like you'd expect.
when I use this(with an empty apache2 dir on the client):
file { "/etc/apache2":
source => "puppet://puppet-master.example.com/www-au/apache2",
recurse => true,
owner => "root",
group => "root",
links => manage,
}
I get this on the master for each file:
err: Cannot currently copy links
and this on the client for each file:
err: //basenode/webserver/apache2/File[/etc/apache2/mods-available/headers.load]/source: Could not describe /www-au/apache2/mods-available/headers.load: Cannot currently copy links
}}
Using the http://reductivelabs.com/trac/puppet/wiki/StyleGuide#symlinks fixes this issue
{{{
file { "/etc/apache2/mods-enabled/auth_basic.load":
ensure => link,
target => "/etc/apache2/mods-available/auth_basic.load",
}
}}}
but I was expecting the recursive copy to manage the symlinks.
Happy to provide further detail if required.