Gerenciamento de configuração: dependências entre máquinas


8

Eu usei ferramentas como fantoche para gerenciar sistemas individuais, geralmente com um alto nível de sucesso. O ponto em que o fantoche cai é que ele não é bom em gerenciar dependências fora de um servidor individual.

Por exemplo, em um servidor MySQL, eu configuro o fantoche para fazer o seguinte:

  • Configurar autenticação na máquina para acessar meu servidor LDAP
  • Configurar o apt para usar meu espelho de repositório local
  • Instale pacotes MySQL
  • Escreva my.cnf
  • Inicie o MySQL
  • Crie usuários no banco de dados

Neste conjunto de etapas, existem várias dependências resolvidas - por exemplo, não consigo iniciar o serviço de banco de dados a menos que instalei os pacotes, o que não posso fazer a menos que o repo apt esteja configurado corretamente.

Este servidor MySQL é uma caixa em uma configuração de replicação master-> master. Em um mundo ideal, o fantoche (ou outra ferramenta similar) me permite representar o fato de que o servidor B precisa esperar até que o servidor A esteja disponível e, em seguida, tentar estabelecer um relacionamento de replicação com ele.

Muito texto aqui - basicamente, o que estou perguntando é: existem ferramentas como o fantoche que podem gerenciar dependências entre máquinas como esta?

Respostas:


4

Se você estiver usando o Puppet, os recursos exportados (e, portanto, as configurações armazenadas ) são a ferramenta para o trabalho. Isso permite que você compartilhe informações entre nós. Incluindo as configurações reais de replicação, se necessário.

Como alternativa, e embora eu não seja um assinante, algumas pessoas tratam seus manifestos / execuções como não deterministas. Significando que uma única execução não declara necessariamente o resultado completo de um nó. Pode levar duas ou mais execuções antes que o nó atinja o estado desejado.

Como configurar o escravo do MySQL antes que o mestre esteja disponível não seria totalmente fatal, você pode seguir esse caminho. Não é tão "inteligente" na minha opinião.


0

Por não ser um usuário fantoche, tenho certeza de que outras pessoas concordarão com respostas mais apropriadas, mas parece que um script de wrapper pode ser implementado com relativa facilidade que verifica antes de iniciar o serviço.


0

Puppet pode fazer isso muito bem. Cada servidor exporta um recurso para configurar o (s) outro (s) servidor (es) apropriado (s) para fazer o que precisa ser feito quando estiver em funcionamento. Não tenho um exemplo para o MySQL, mas configuramos muitos recursos DRBD (como cerca de 80, na contagem atual) dessa maneira, assim como todas as nossas configurações do Nagios.


0

A camada de controle pode muito bem ser o que você procura. Você pode usá-lo em conjunto com o fantoche, para que a curva de aprendizado não seja muito íngreme.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.