Eu recomendaria usar um sistema de gerenciamento de configuração, como puppet ou CFEngine, ou pelo menos armazenar centralmente as configurações dentro de um único repositório e puxá-las para todos os servidores web.
Para a solução de gerenciamento de configuração, você pode especificar arquivos inteiros que devem existir e onde obter a cópia canônica no servidor de gerenciamento de configuração ou pode especificar os parâmetros para esses arquivos no idioma de gerenciamento de configuração, o que fornece um camada de abstração e simplifica o processo de introdução de novas configurações de maneira correta.
Para simplesmente manter e distribuir centralmente os arquivos, você provavelmente desejaria verificar os arquivos de configuração em um software de controle de versão, como CVS ou SVN. A partir daqui, existem duas maneiras simples de obter essas configurações em todos os seus servidores da Web.
- Você pode instruir seus servidores da Web a extrair diretamente da ferramenta de gerenciamento de versões ( cvs co ou svn checkout )
- Como alternativa, você poderia fazer um pouco mais de trabalho para criar uma solução mais robusta, escalonável e reutilizável
- script construindo um RPM de todos os arquivos de configuração do apache (ou o equivalente para o seu sistema operacional)
- executar um repositório do yum dentro do servidor de controle de versão (ou o equivalente para o seu SO)
- simplesmente instrua seus servidores da web a executarem uma atualização yum my-apache-configs (ou o equivalente para o seu SO).
A solução somente VCS é mais fácil de configurar e funciona nos sistemas operacionais. A solução de repositório de pacotes é um pouco mais difícil de configurar, mas abrirá o caminho para você empacotar e distribuir configurações, códigos e scripts de todos os tipos, e se alinha mais de perto com a metodologia do fornecedor de SO.
A outra coisa boa sobre a solução do repositório de pacotes é que você pode definir dependências e grupos de pacotes. Isso significa que você pode tornar minha-apache-config dependente do link e do mod_ssl . Você poderia então criar um pacote vazio que você chama de algo como company_com-web_server que depende de my-apache-configs e my-ssl-certificates e quaisquer outros pacotes específicos para sua empresa. Para configurar uma nova instância do servidor web, coloque um servidor recém-instalado (adicione seu yum repo ao kickstart) atrás do balanceador de carga, emita um yum -y install company_com-web_server , saia para tomar um café, e voltar com uma instância de servidor da web pronta para o roll.
===== EDIT =====
O valor deste mecanismo é que ele cria um sistema fracamente acoplado. Se o servidor de gerenciamento de configurações ou o repositório do yum ficar offline, você perderá a capacidade de reconfigurar, mas os servidores da Web permanecerão ativos. Mesmo na instância htat, você pode replicar manualmente as alterações em todas as máquinas e verificar as alterações manualmente quando o repo voltar. Usar armazenamento compartilhado (NFS, sistema de arquivos em cluster, etc) criaria uma falha de ponto único.