OBSERVAÇÃOEsta é uma cópia de umpergunta fechada do Stack Overflow, e uma versão construtiva, creio eu, de umpergunta semelhante em falha do servidor.
Freqüentemente, preciso editar muitos arquivos de configuração em /etc
, no entanto, não quero que essas alterações sejam perdidas quando realizar minha próxima atualização do sistema.
No momento, abriguei todos os arquivos de configuração, bem como alguns dos meus scripts de manutenção /opt/admin
e /etc
destinos com links simbólicos lá, mas isso não parece certode acordo com os padrões que eu vi. Outra opção que pensei é alojá-los em /usr/local
. O documento mencionado diz que é para uso do administrador do sistema ao instalar software localmente. Isso é o mais próximo que tenho. No entanto, também /usr/local
é prejudicado quando você instala um novo software não empacotado.
Existe um padrão/prática recomendada amplamente seguida sobre como mantê-los? Como esta não é uma página de discussão, as respostas devem ser definitivas e com um ou dois artigos para apoiá-las.
OBSERVAÇÃOIncluí minha própria resposta que considero mais útil até agora. Eu reabri isso aqui para que possa ser discutido e para que mais respostas cheguem.
Responder1
Embora isso não os mantenha separados,etckeeperfaz um ótimo trabalho ao rastrear alterações nos arquivos de configuração. Manter o repositório fora da caixa em algum lugar facilitaria a restauração dessas alterações em uma nova máquina.
Responder2
Você poderia usar uma ferramenta de gerenciamento de configuração para fazer isso. Isso é bem dimensionado quando você adiciona servidores com a mesma função.
Parece que você criou um que atende às suas necessidades, mas você pode querer dar uma olhada no Chef, Puppet, Ansible, Opsware ou outras ferramentas de gerenciamento/automação/orquestração de configuração, dependendo de suas necessidades e orçamento.
Responder3
Pelas respostas às perguntas que mencionei, parece haver duas soluções gerais - usar links simbólicos ou manter uma lista de arquivos (veja as respostas de ptman e Jim nas perguntas vinculadas). Não consegui encontrar um artigo sobre práticas recomendadas.
Sugiro uma solução híbrida: você mantém apenas um arquivo simples (eu chamo isso de FILES
) com uma lista de arquivos de configuração. Um script lê FILES
e vincula arquivos de configuração reais em uma hierarquia de sistema de arquivos duplicada em um diretório escolhido (eu chamo o script link-config-files.sh
e o diretório system-config
).
Dessa forma, você mantém arquivos apenas em um arquivo que é fácil de editar e não envolve magia de shell. Os arquivos de configuração de seu interesse podem ser acessados system-config
graças ao link simbólico. Uma tarefa cron foi configurada para fazer backup system-config
, portanto, o backup de todos os arquivos de configuração é feito automaticamente. E outro cron job é executado periodicamente, link-config-files.sh
então tudo o que resta para um arquivo aparecer (ou desaparecer) system-config
e fazer backup é editar FILES
.
Acho que esta é a melhor solução até agora. Claro que sou tendencioso. Em todo o caso,aqui está meu roteiroe também vincula um script de backup.