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?
deployment
puppet
michaeltwofish
fonte
fonte
Respostas:
Eu examinaria o Capistrano ou o Fabric para implantações.
Você terá melhor controle sobre como a implantação acontece com essas duas ferramentas.
fonte
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)
fonte
Se você deseja criar um pacote a partir do seu aplicativo, pode procurar no FPM . O código está no GitHub .
fonte
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!
fonte
Uma execução remota + ferramenta de gerenciamento de configuração seria boa para a implantação de aplicativos. O sal é um bom exemplo disso .
fonte
O Puppet não foi realmente projetado para implantação, porque quando há um grande número de arquivos envolvidos, você pode encontrar problemas. Você pode procurar no capistrano a implantação de aplicativos.
http://rubyforge.org/projects/capistrano/
fonte