Distribuição de software

1

Eu tenho um conjunto de servidores com Red Hat integrado e um software interno (é um conjunto de muitos arquivos com configurações e assim por diante) que está em desenvolvimento permanente.

Existem vários tipos de servidores:

  • desenvolvimento
  • testando
  • pós-teste
  • produção

Existem até 10 servidores em cada categoria, mas cada servidor trabalha separadamente e não depende de outros. Furtermore em cada fluxo eu posso ter subversões menores que são marcadas no repositório cvs. Então, não posso simplesmente criar um test.rpm para todos os servidores de teste e prod.rpm para todas as produções.

De qualquer forma, vejo várias maneiras de fazer isso:

  • Crie seu próprio repositório rpm, construa automaticamente um conjunto de pacotes rpm para cada tipo de servidor e sua subversão e use um cron para atualizar um pacote.
  • Use um script de shell com configuração própria em cada servidor para fazer isso
  • Fazer atualização manualmente:)

Qual é o melhor? Ou todos eles estão completamente errados e há outro caminho? :)

    
por rush 06.09.2012 / 17:22

1 resposta

4

Existem várias coisas que você deve considerar:

  • Comece a usar um software de integração contínua para criar seu software, por exemplo Jenkins, Buildbot ou outras coisas.
  • Crie repositórios dedicados para seus estágios - com base em seu comentário, pode ajudar na implantação, pelo menos para o estágio de desenvolvimento e talvez de teste, por meio de sua ferramenta de IC e para os estágios posteriores por meio de atualizações automáticas.
  • Use algo como caminhada no espaço ou atualizações autônomas ou ferramentas semelhantes para manter seus sistemas atualizados. Não use scripts cron manuais ou faça login em um sistema. Você também pode usar o fantoche em vez do passeio espacial para garantir que você tenha a versão mais recente de um pacote instalado.
  • Use fantoche / chef /… para a configuração e especificação do pacote. Você pode, por exemplo, especificar simples para ter a versão mais recente do pacote instalada com o fantoche ou adicionar um repositório específico a todos os seus servidores de teste, etc.

O mais importante é automatizar tudo da melhor forma possível. Você deve usar um sistema de gerenciamento de configuração como fantoche ou chef porque isso simplifica e automatiza a implantação de novos sistemas, por exemplo, você só precisa executar o fantoche uma vez e o servidor é configurado como um sistema de produção.

    
por 06.09.2012 / 18:15