Os arquivos fantoches estão refletindo a configuração do seu sistema e, portanto, são um pouco feios. Eu sugiro uma das seguintes soluções:
-
Reestruturar a configuração do seu sistema pode ajudar um pouco. Não monte seu dispositivo em / mnt / postgres, mas em / var / lib / postgresql, ou use uma partição
/var
. -
Se o seu único problema é o postgres ser instalado antes da sua criação do symlink, isto é fácil: Impor a criação do symlink antes da instalação do postgres.
package { 'postgresql': ensure => installed, require => File['/var/lib/postgresql'], }
Se você deseja corrigir sistemas em que seu problema já persiste, recomendo implementar uma declaração
exec
de correção, semelhante a esta:exec { '/usr/local/bin/fix_postgres_installation.sh': user => 'root, onlyif => 'test -d /var/lib/postgresql', before => File['/var/lib/postgresql'], }
O script pode encerrar o postgres, sincronizar os dados com
/mnt/postgres
, excluir/var/lib/postgres
. -
Se você quiser simplesmente forçar a exclusão do diretor para o recurso de arquivo, poderá usar a opção
force
, conforme descrito no Puppet documentation -
Altere os diretórios de dados de seus aplicativos. A maioria das aplicações permite isso. Para o Postgres, o settign
data_directory()
deve ajudá-lo, veja também a Documentação do PostgreSQL .