A resposta curta é mudar
file { $path:
ensure => directory,
owner => user,
group => group,
mode => 'a=rx,u+w'
}
em
file { $path:
ensure => link,
target => /path/to/original/directory
owner => user,
group => group,
mode => 'a=rx,u+w'
}
Ao usar ensure => directory
, você está dizendo ao boneco que você quer um diretório e que qualquer outra coisa que ele encontrar (como um arquivo ou link simbólico) deve ser clobber e substituir pelo diretório. Ao usar ensure => link
, você dirá ao fantoche que deseja um link simbólico que aponte para o valor de target
, que, por sua vez, pode ser um diretório, um arquivo ou um dispositivo. Dependendo do que você está fazendo, você pode precisar criar um tipo de arquivo (usando ensure => directory
) no seu alvo, se você precisar de um fantoche para gerenciá-lo.
Recomendamos que você leia a documentação do tipo de arquivo para entender melhor como usá-lo.
Editar:
Para distinguir entre servidores diferentes, você vai querer usar definições individuais de node
para seus servidores diferentes. Você pode essencialmente fazer o seguinte para conseguir o que deseja:
node 'server1.mydomain.com' {
file { $path:
ensure => directory,
owner => user,
group => group,
mode => 'a=rx,u+w'
}
}
node 'server2.mydomain.com' {
file { $path:
ensure => link,
target => /path/to/original/directory
owner => user,
group => group,
mode => 'a=rx,u+w'
}
}