Implantação de aplicativo com Puppet


10

Eu sou novo no Puppet e, enquanto uso sistemas * nix há muitos anos, nunca trabalhei como administrador de sistemas ou em operações.

Atualmente, estou escrevendo manifestos do Puppet para hospedar um conjunto de aplicativos da web (PHP / MySQL / MongoDB, código no git). Claramente, o Puppet precisa ter algum conhecimento dos aplicativos reais, porque configurarei um host virtual para cada um, mas não tenho certeza se o Puppet deve gerenciar coisas como implantação de código e criação de banco de dados.

O Puppet é uma ferramenta apropriada para a implantação de aplicativos? Caso contrário, você pode recomendar uma ferramenta mais apropriada?


3
Se você for abordar isso mais tarde, todas as respostas serão boas, não apenas leia a que escolhi como resposta.
22412 michaeltwofish

Respostas:


10

Eu examinaria o Capistrano ou o Fabric para implantações.

Você terá melhor controle sobre como a implantação acontece com essas duas ferramentas.


Marquei esta resposta com +1 porque deu duas soluções.
François Beausoleil

Eu aprecio as dicas. Temos Ruby em outro lugar da nossa pilha, então vou olhar para Capistrano.
22412 michaeltwofish

9

O Puppet é usado para implantações em muitas organizações grandes, mas nem sempre é perfeito. Muito disso depende da sua metodologia de implantação. Você está implantando em muitas máquinas ao mesmo tempo? Você faz implantações contínuas?

Algumas organizações usam o Puppet criando pacotes de suas implantações e, em seguida, fazendo com que o fantoche aplique a política para estar na versão correta desse pacote. Como o fantoche possui o conceito de ambientes incluído, você pode usar ambientes para fazer implantações em etapas (dev, test, prod por exemplo).

Outras organizações usam o puppet para orquestrar a implantação disparando um rsync, git checkout ou algumas cópias de arquivo recursivamente usando o puppet (embora isso seja bastante lento).

Existem outras boas ferramentas disponíveis para implantação também. Eu usei o Whiskey Disk no passado (uma ferramenta simples de rubi) e gostei muito.

(Isenção de responsabilidade, trabalho no Puppet Labs)


Obrigado. As implantações são em dois servidores balanceados, atualmente usando o rsync manual.
michaeltwofish

4

Se você deseja criar um pacote a partir do seu aplicativo, pode procurar no FPM . O código está no GitHub .


Obrigado pela dica. Não estamos construindo pacotes neste caso, mas o FPM parece interessante e podemos usá-lo para outras tarefas.
22612 michaeltwofish

4

O Puppet não é a ferramenta apropriada para implantar aplicativos na minha opinião.

Eu uso o Jenkins para criar e implantar nosso código para teste e preparação.

Jenkins é originalmente um servidor de integração contínua, mas é realmente flexível e modular. Existem muitos plugins para o Jenkins que podem ajudá-lo a implantar seus aplicativos:

Para nosso aplicativo, configurei o Jenkins com o Publish over SSH, que copia um arquivo WAR criado com sucesso para o servidor de destino e depois executa um script que faz o backup e a implantação. Espero que isto ajude!


Estamos usando o Jenkins para CI, então essa é definitivamente uma opção interessante para explorar, obrigado.
22612 michaeltwofish


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.