Como configurar um repositório centralizado para distribuir arquivos para servidores

1

Suponha que eu tenha dezenas, até centenas de servidores. Qual é o melhor método de enviar uma cópia central dos arquivos para um determinado diretório para todos os servidores? Exemplo, atualizamos um script bash e o colocamos em um repositório central. Então, queremos que o repositório envie o script bash atualizado para todos os servidores automaticamente. Suponha também que o repositório possa fazer ssh em todos os servidores por meio de chave pública.

Eu sei que posso agitar algum script de shell hackeado para percorrer uma lista de servidores e scp, mas tem que haver uma maneira melhor de gerenciar isso. Como cerca de rysnc? AMARIA uma interface GUI, como, adicionar servidores, em seguida, basta fazer o upload de um arquivo, e ele fica scp'd para todos os servidores do grupo.

Obrigado.

    
por Justin 08.12.2011 / 08:41

3 respostas

1

Você deve investigar um sistema de Gerenciamento de Configurações como Puppet , Bcfg2, Chef , CFEngine ou outros

O Puppet, por exemplo, abrange todos os seus casos de uso listados e fornece funcionalidades adicionais, como lançamentos de etapas, auditoria / relatórios, fluxos de trabalho complexos, etc.

    
por 08.12.2011 / 09:29
1

Se você quer uma solução pesada que gerencie centralmente a configuração do servidor (e, se você está lidando com dezenas ou centenas de caixas, você deveria estar olhando para esse tipo de coisa), dê uma olhada em Chef ou Marionete . Isso pode ser um exagero para o seu ambiente, e há uma curva de aprendizado íngreme, mas não consigo imaginar lidar com essas muitas caixas de qualquer outra forma.

Se você tiver apenas um diretório de scripts bash, poderá montar um compartilhamento de rede desse diretório.

Na verdade, acho que precisaremos de mais informações sobre seu ambiente. Você tem controle direto de todos esses servidores? Em vez disso, você está dizendo "Eu distribuo algum software para um grupo de clientes e quero manter esse software atualizado" (nesse caso, como está o seu pacote de software)? Qual é exatamente a sua situação?

    
por 08.12.2011 / 09:31
0

Além das outras respostas para configuração centralizada (usamos chef internamente) ...

Você também pode usar um repositório de arquivos svn como o subversion para seus recursos de versionamento de arquivos e seu front end HTTP.

Por exemplo, temos um farm de servidores web apache com httpd em 5 nós, e eu mantenho uma cópia de httpd.conf e /etc/httpd/conf.d/www.myserver.com.conf no svn repo, este permite-nos implementar mudanças nas instâncias facilmente e também retroceder no caso de af ** k up.

Ele também representa um componente no banco de dados de recursos e pode ser usado para confirmar que todas as suas instâncias estão executando a mesma configuração, se você implantá-lo automaticamente.

Obviamente, nos tempos modernos, existem várias alternativas para um repositório, como git, mercurial ou uma interface davfs para algum servidor de arquivos que possui uma estratégia de versionamento local.

    
por 26.02.2012 / 21:50

Tags