Você também pode usar a declaração "exec" se não puder encontrar outra maneira.
exec { "hardlink1":
command => "ln target source",
path => "/usr/local/bin:/bin",
creates => "yourhardlink"
}
Existe uma maneira de definir hardlinks dentro do manifesto de fantoches?
Parece que o tipo de arquivo só pode definir links simbólicos, mas eu preciso que sejam hard links para fazer com que alguns dos meus aplicativos chrooted funcionem. Por exemplo, preciso vincular
/etc/hosts -> $chroot/etc/hosts
/etc/resolvf.com -> $chroot/etc/resolv.conf
e assim por diante.
Qual pode ser a maneira mais simples de arquivar isso?
Atualização: obrigado, terminei com o seguinte define:
define hardlinkdir(source=$name, target) {
exec {
"hardlinkdir-$name":
command => "cp -r --link $target $source",
path => "/usr/bin:/bin",
creates => $source;
}
}
define hardlink(source=$name, target) {
exec {
"hardlink-$name":
command => "ln --force $target $source",
path => "/usr/bin:/bin",
unless => "test $source -ef $target";
}
}
Claro, eles não são perfeitos, mas fazem o trabalho e é tudo que eu preciso.
Obrigado pela sua ajuda!
funciona para mim perfeito isso ..
define hardlink($source=$name, $target) {
exec {
"hardlink-$name":
command => "ln -P --force $source $target",
path => "/usr/bin:/bin",
unless => "test $source -ef $target";
}
}
Também é bastante trivial apenas enviar o mesmo arquivo para vários locais com o Puppet, como exemplo:
file { [ "/etc/named.conf", "/var/named/chroot/etc/named.conf" ]: mode => 640, owner => root, group => named, ensure => present, require => [ Package['bind'], Package['bind-chroot'], ], source => "puppet:///modules/named/named.conf", }