Git Repo para manter as configurações do aplicativo em vários servidores

1

Eu preciso criar versões em um repositório GIT, configurações de uma plataforma específica, espalhadas por vários servidores. Leve em conta que em cada um desses servidores existem configurações completamente diferentes, enquanto o aplicativo é o mesmo. Qual é a melhor maneira de fazer isso?

  1. Crie um ramo para cada servidor

    • repository.git: conf - > [Servidor de ramificação 1]
    • repository.git: conf - > [Servidor de ramificação 2]
    • repository.git: conf - > [Servidor de filiais N]
    • Nota: Esse método parece difícil de ser mantido, porque a cada mudança nas configurações do servidor, eu preciso criar sub-ramificações que se tornam confusas.
  2. Crie um único repositório com um diretório diferente para cada servidor

    • repository.git: conf / Server 1
    • repository.git: conf / Server 2
    • repository.git: conf / N do servidor
    • Nota: é fácil manter
  3. Crie um repositório para cada servidor

    • repository_1.git: conf
    • repository_2.git: conf
    • repository_N.git: conf
    • Observação: esse método exige que eu crie uma ramificação para cada novo servidor.

Existem outros métodos, quais são as melhores práticas neste caso? Devo usar o que me sinto mais confortável?

Tks,

Gulden PT

    
por gulden PT 13.01.2011 / 13:34

2 respostas

1

O Bcfg2 é um excelente sistema de gerenciamento de configurações que pode ser usado com qualquer sistema de controle de versão.

Eu uso um repositório para todos os sistemas que eu gerencio. O Bcfg2 manipula as diferenças nos arquivos de configuração para máquinas e grupos diferentes, anexando o nome do host ou o nome do grupo com uma prioridade ao nome do arquivo. O Bcfg2 fornece ao seu sistema o arquivo mais específico para cada entrada do ConfigFile.

Então, na sua descrição de configuração você teria:

<ConfigFile name="/etc/network/interfaces" />

e seus arquivos de configuração seriam:

# ls Cfg/etc/network/interfaces
interfaces
interfaces.H_server1
interfaces.H_server2

A principal vantagem que vejo com o Bcfg2 sobre o Puppet e o Cfengine é que, em vez de executar scripts para configurar seu sistema para fazer as coisas, o Bcfg2 determina como seu sistema não se ajusta à sua especificação e faz as alterações necessárias.

    
por 13.01.2011 / 16:32
0

Na verdade, a maneira mais fácil é executar tudo por meio de uma ferramenta Config Management. Eu prefiro Chef, mas Puppet e cfengine também resolvem o mesmo problema. Chef, pelo menos, foi construído com a intenção ou expectativa de que as configurações seriam armazenadas no controle de versão.

No entanto, sem refazer sua infra-estrutura, você provavelmente deve fazer o script da cópia de seus arquivos de configuração individuais em um diretório comum, certifique-se de que, se os arquivos não forem nomeados, coloque-os em uma pasta com nomes sensuais. e envolva isso no nome do servidor.

Então:

--networkDrive
----ServerName1
------WebServerConfig
------AppServerConfig
----ServerName
------AnotherAppConfig
----ServerName

... e assim por diante ...

A partir daí, é fácil criá-lo e cometer (o que também é fácil de usar como script).

    
por 13.01.2011 / 14:19