Substituiu esse diretório por um link:
Em "força":
"Replace directories with files or links"
Para referência futura, você pode tentar executar no modo noop para ver quais alterações serão feitas:
puppet agent --test --debug --noop --show-diff
Estou na posição um pouco embaraçosa de ter excluído inadvertidamente vários dados importantes da TB via Puppet, e estou apenas tentando entender por que isso pode ter acontecido.
Primeiramente, tenho certeza de que a razão pela qual desapareceu (como no irrecuperável, exceto por meio de backups) é:
File { backup => false }
no meu site.pp. Os nós foram configurados para montar algo através do NFS, então um ponto de montagem / montagem e uma linha no fstab assim:
nfsserver:/mount /mount nfs <options> 0 0
Eu queria me livrar da montaria e substituí-la por um link simbólico para a mesma localização eventual (apesar de um caminho diferente).
Meu manifesto de fantoches ficou assim:
class symlinks::linkdirtest ( ) {
file { '/mount':
ensure => "link",
target => "/anotherdir/mount",
}
mount { "/mount":
ensure => "absent",
}
}
Isso gerou o seguinte ao executar uma marionete:
notice: /Stage[main]/Symlinks::Linkdirtest/File[/mount]: Not removing directory; use 'force' to override
Então, eu devidamente (ou estupidamente) adicionei:
class symlinks::linkdirtest ( ) {
file { '/mount':
ensure => "link",
target => "/anotherdir/mount",
force => "true",
}
....
E eis que, o fantoche procedeu para consignar o conteúdo do monte todo importante para o esquecimento, enquanto o próprio ponto de montagem permaneceu.
Alguma idéia de por que isso aconteceu?
Obrigado
Substituiu esse diretório por um link:
Em "força":
"Replace directories with files or links"
Para referência futura, você pode tentar executar no modo noop para ver quais alterações serão feitas:
puppet agent --test --debug --noop --show-diff
Depois de testar as marionetes antes de aplicá-las, lembre-se também de que a ordem em que você escreve seu código de marionete nem sempre é a ordem na qual o fantoche é executado. Neste caso, você deve ter definido o pedido. Você tem que desmontar primeiro antes que o symlinking aconteça. Você poderia ter feito isso da seguinte maneira:
class symlinks::linkdirtest ( ) {
file { '/mount':
ensure => "link",
target => "/anotherdir/mount",
}
mount { "/mount":
ensure => "absent",
before => File['/mount'],
}
}
Tags puppet linux filesystems