Além de nossa infraestrutura interna de TI, temos cerca de 500 máquinas Linux hospedando nossos serviços para o mundo on-line. Eles estão agrupados em vários clusters como Banco de Dados An, Produto An, NFS, Backoffice e assim por diante. Além disso, eles são administrados por um fornecedor externo, de acordo com nossas especificações e requisitos.
No entanto, enfrentamos muitos problemas durante o desenvolvimento, a implantação e a implantação de software (web) - especialmente porque os ambientes de desenvolvimento e de armazenamento temporário não têm quase nada em comum com os sistemas ativos (poupamos os detalhes desagradáveis ..) .
Assim, tentei criar máquinas virtuais, copiei os vários sistemas ativos da maneira mais exata possível e os preparei para conectar-se, por exemplo, aos bancos de dados de desenvolvimento, em vez dos "reais" de forma transparente para os desenvolvedores (eles não são root
). Isso funciona muito bem, mas ...
Eu queria saber como alguém poderia administrar esses sistemas remotamente e em massa ? Existe alguma família de software de que não conheço? Ou, pelo menos, algumas técnicas ou princípios com os quais devemos estar familiarizados?
Forneceríamos a cada desenvolvedor um monte de imagens para serem executadas localmente (VirtualBox). O departamento de controle de qualidade. obteria clusters virtuais (XEN ou Hyper-V). Se eu precisar fornecer um módulo de servidor adicional, redirecione uma nova conexão de banco de dados ou apenas deseje atualizar tudo o que é fornecido pelo gerenciador de pacotes ... como eu poderia fazer isso sem ser forçado a fazer logon em todos os sistemas e / ou pedir aos meus colegas para baixar e executar algum script de fixação?
Eu acredito que existem muitas soluções. Bem, de alguma forma eu sou burra demais para inserir as palavras-chave corretas nos mecanismos de pesquisa ... Ou esse problema não é tão trivial quanto parece?
Para o registro:
- Quase todos os sistemas estão executando o Debian GNU / Linux 6.x "squeeze"
- Nenhum desenvolvedor é forçado a usar um sistema operacional específico em sua estação de trabalho
- O orçamento é limitado, é claro, mas não muito pequeno para comprar software proprietário
- É preferível uma solução que envolva nosso provedor mencionado acima
fonte
cucumber-puppet
. É claro que você pode desenvolver / aumentar sua própria estrutura reutilizando componentes existentes, mas parecia que o OP não tem nada atualmente e, se você começar do zero, acho melhor usar uma estrutura existente.Ulrich já deu a resposta sobre a implantação de software e a configuração automatizada do servidor.
Os princípios por trás disso são
Você pediu uma ferramenta útil para gerenciar massas de servidores - o meu favorito é cluster-ssh (
cssh
). Digite uma vez e faça alterações em muitos servidores simultaneamente.Se você descobrir um problema e tiver uma correção para removê-lo:
Se você estiver enfrentando uma grande quantidade de servidores para corrigir, é um processo que precisa ser bem documentado e, no final, uma equipe diferente deve verificar se a correção foi completamente aplicada.
Empregamos o Mantis (código aberto, PHP) para esse fim.
fonte
Gerencio cerca de 30 produtos e algumas centenas de servidores em vários países. Sou o gerente de configuração de software, por isso não tenho acesso root (por design), não toco nos bancos de dados ou em seus servidores (novamente, por design) e tenho que pular muitos obstáculos por causa da segurança corporativa. Mas eu gerencio as configurações em teste, preparo e produção, incluindo links e alterações no banco de dados. Eu tenho um número de scripts que saem para servidores usando combinações de
ssh
,python
e Shell scripts.As principais coisas para se pensar são:
ssh
suficiente e de um local central seguro?ssh
executá-lo remotamente? Você pode criar um script comexpect
ou apenas uma chamada de linha de comando?O VirtualBox oferece muitas ferramentas de linha de comando que você pode administrar através de
ssh
sistemas justos oupuppet
como Ulrich menciona.fonte