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. Onde o fantoche cai é porque ele não é bom para gerenciar dependências fora de um servidor individual.

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

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

Neste conjunto de etapas, há várias dependências resolvidas - por exemplo, não consigo iniciar o serviço de banco de dados a menos que eu tenha instalado os pacotes, o que não posso fazer a menos que o repositório apt esteja configurado corretamente. / p>

Este servidor MySQL é uma caixa em uma configuração de mestre e de replicação mestre. Em um mundo ideal, fantoche (ou outra ferramenta semelhante) me deixaria 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.

Um monte de texto aqui - basicamente o que eu estou perguntando é: existe alguma ferramenta como o boneco que pode gerenciar dependências entre máquinas como essa?

    
por Jon Topper 27.11.2009 / 15:03

4 respostas

4

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

Como alternativa, e embora eu mesmo não seja um assinante, algumas pessoas tratam seus manifestos / execuções como não-determinísticos. Isso significa que uma única execução não necessariamente declara o resultado completo de um nó. Pode demorar duas ou mais execuções antes que o nó atinja seu estado desejado.

Como configurar o escravo do MySQL antes de o mestre ser disponibilizado não seria totalmente fatal, você pode querer seguir esse caminho. Não é tão "inteligente" na minha opinião.

    
por 27.11.2009 / 15:22
0

Não sendo um usuário de marionetes, tenho certeza de que outros irão responder com respostas mais apropriadas, mas parece que um script wrapper pode ser implementado com relativa facilidade que é verificado antes de iniciar o serviço.

    
por 27.11.2009 / 15:10
0

O Puppet pode fazer isso muito bem. Faça com que cada servidor exporte um recurso para configurar o (s) outro (s) servidor (es) apropriado (s) para fazer o que precisa ser feito quando estiverem funcionando. Eu não tenho um exemplo para o MySQL, mas nós configuramos um lote (como cerca de 80, na contagem atual) recursos do DRBD, assim como todas as nossas configurações do Nagios.

    
por 27.11.2009 / 19:57
0

O nível de controle pode ser o que você procura. Você pode usá-lo em conjunto com o boneco para que a curva de aprendizado não seja muito íngreme.

    
por 27.11.2009 / 20:07