(Peço desculpas antecipadamente pela estupidez nesta pergunta. Normalmente sou um programador, não um administrador de sistemas, mas resolvi automatizar algumas coisas e limpar outras que são automatizadas, mas não da maneira mais bonita . :-)
Estive pesquisando várias ferramentas para automação da implantação de software em vários servidores, como cfengine, Puppet e Chef. Até agora, o Puppet parece o mais atraente, mas certamente ainda não me comprometi com nada.
Todas essas ferramentas parecem poder fazer um ótimo trabalho em manter vários servidores atualizados com o software pré - empacotado .
O que não entendo é: como alguém usa uma ferramenta (como o Puppet) para gerenciar implantações de nosso próprio software interno? Acho que estou perdida porque vi milhares de tutoriais mostrando como manter o Apache ensure => latest
(o que é bem legal), mas nada que corresponda ao meu caso de uso hoje, que é algo mais como:
- quando um ser humano aperta o botão,
- extrair a ramificação A do repositório de controle de versão B
- execute o comando C para compilá-lo
- copie os binários D para os servidores E1 a E10
- em cada servidor, execute o comando F para que todas as alterações entrem em vigor
O Puppet parece ótimo, e eu vejo totalmente a vantagem da configuração declarativa e idempotente sobre alguns scripts de shell, mas não vi nenhum tutorial para "você deseja atualizar seus scripts de shell para Puppet (ou Chef ou cfengine), então aqui está o que você deveria fazer". Existe uma coisa dessas? É óbvio para outras pessoas como levar as coisas fornecidas nos documentos do Puppet e replicar o comportamento que eu quero? Eu simplesmente não estou entendendo?
Até agora, o que parece para mim é que o ser humano (# 1) empacotaria manualmente o software (# 2 e # 3) externo ao Puppet, atualizaria manualmente a configuração do Puppet, o que acionaria o Puppet para atualizar os servidores. .. talvez? (Estou um pouco confuso aqui, como tenho certeza de que você pode perceber.)
Obrigado!