Je me trouve dans la situation quelque peu embarrassante d'avoir supprimé involontairement plusieurs To de données importantes via Puppet, et j'essaie de comprendre pourquoi cela a pu se produire.
Premièrement, je suis presque sûr que la raison pour laquelle il a disparu (comme dans irrécupérable sauf via les sauvegardes) est.. :
File { backup => false }
dans mon site.pp. Les noeuds ont été configurés pour monter en dur quelque chose via NFS, donc un point de montage /mount, et une ligne dans fstab comme ceci :
nfsserver:/mount /mount nfs <options> 0 0
Je voulais me débarrasser du montage et le remplacer par un lien symbolique vers le même emplacement éventuel (mais avec un chemin différent).
Mon manifeste de marionnettes ressemblait à ça :
class symlinks::linkdirtest ( ) {
file { '/mount':
ensure => "link",
target => "/anotherdir/mount",
}
mount { "/mount":
ensure => "absent",
}
}
Cela a donné le résultat suivant lors de l'exécution de Puppet :
notice: /Stage[main]/Symlinks::Linkdirtest/File[/mount]: Not removing directory; use 'force' to override
J'ai donc dûment (ou stupidement) ajouté :
class symlinks::linkdirtest ( ) {
file { '/mount':
ensure => "link",
target => "/anotherdir/mount",
force => "true",
}
....
Et voilà, Puppet a procédé à la mise aux oubliettes du contenu du montage si important, alors que le point de montage lui-même est resté.
Une idée de la raison pour laquelle cela a pu se produire ?
Merci