Symlinking arquivos de configuração

1

Nosso servidor tem vários serviços com seu próprio arquivo de configuração. Nginx, Dovecot, Postfix ...

Todos esses arquivos de configuração estão localizados em seu próprio diretório / etc / {service}.

Estou tentando mover esses arquivos para um local central e adicionar um link simbólico. Algo como: /etc/postfix/main.cf <- /root/server-config/postfix/main.cf

O acima funciona para a maioria dos serviços (Nginx, PHP, ..). No entanto, alguns serviços relacionados a e-mail dão permissão negada a erros. Eu tentei muitas opções diferentes, como dar mais permissão ao symlink e ao arquivo de origem, dando permissão max (777), executar como Root, adicionar dovecot / postfix ao grupo raiz ...

Todas as opções que tentei não fizeram qualquer diferença. Nosso objetivo principal é ter todos os arquivos de configuração em um repositório git e empurrá-los para o GitHub, para que eles tenham controle de versão.

O que posso fazer para fazer o trabalho acima?

Se você tiver uma alternativa que não funcione com git ou links simbólicos, adicione-os como comentário.

    
por Jordi Kroon 20.11.2015 / 15:07

2 respostas

2

Acho que a sua ideia de mover arquivos de configuração para outros locais a partir de seus locais padrão e criar um link simbólico para eles não é boa, pois pode criar muitos problemas.

  • Se os links simbólicos forem quebrados por algum motivo, o software ou serviço relevante poderá parar de funcionar e isso poderá tornar seu sistema e serviços vulneráveis e inutilizáveis. Você também pode achar difícil consertar. Então você deve pensar em fazer o contrário.

Você pode pensar em usar ferramentas como etckeeper , que permite armazenar automaticamente as alterações feitas em /etc ou (outras diretórios) para sistemas de controle de versão como git . Então você pode empurrá-los para um repositório git central.

    
por 20.11.2015 / 15:18
0

Por que você acha que precisa movê-los para tê-los em um repositório do git? Ferramentas como o etckeeper já existem, e elas mantêm todas / etc em um repositório git.

Além disso, há toneladas de ferramentas de gerenciamento de configuração (fantoches, chefes, ansible, etc) que você pode / deve ser usado para configurar as coisas. Então você pode manter sua configuração de gerenciamento de configuração em seus repositórios git.

Muitos arquivos de configuração precisam de um proprietário e permissões específicos. Por favor, não assuma root: root é a coisa correta, e uma permissão de 0777 seria absolutamente horrível para um arquivo de configuração. Isso quase certamente significará que qualquer pequeno comprometimento de qualquer coisa no seu sistema se torna um compromisso de tudo.

    
por 20.11.2015 / 18:45