Você tem um projeto que tem alguns requisitos de SW para executar (por exemplo: uma versão específica do Apache, uma versão do PHP, uma instância de um banco de dados MySQL e alguns outros softwares).
Você já descobriu o Vagrant , então seu ambiente virtual está todo configurado. Você pode criar caixas com seus arquivos de configuração e livros de receitas.
Você também entendeu as vantagens de um sistema de integração contínua como o Jenkins .
Agora você gostaria de combinar esses dois mundos (Vagrant e Jenkins) para obter o ambiente de integração contínua perfeito. Para ser mais específico, você gostaria de não instalar o SW exigido pelo seu projeto na máquina que executa o Jenkins, mas gostaria de usar o ambiente virtual fornecido pelo Vagrant para construir periodicamente seu projeto em cima dele. O software CI (Jenkins) irá construir a caixa Vagrant para você e construir e testar seu projeto em cima dela.
Como você configuraria seu ambiente para conseguir isso?
fonte
Respostas:
é uma boa solução para construir sistema, minha sugestão:
Provavelmente você pode dar uma olhada no veewee , que pode criar uma caixa vagrant instantaneamente .
Aqui está Facilite a CI com Jenkins CI e Vagrant para minha orientação para esta sugestão.
fonte
Você pode tentar o plug-in do Vagrant para Jenkins que atualmente suporta o Jenkins CD 1.532.3
Você pode ver uma demonstração desse plug-in em execução em http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html
fonte
Pessoalmente, eu sugiro usar o Hashicorp Packer para construir suas caixas Vagrant para desenvolvedores e, em seguida, usá-lo para gerar uma imagem Docker ou AWS ou OpenStack que você pode executar em seu sistema CI. O Vagrant é uma ferramenta incrível, mas a sobrecarga das VMs pode ser um pouco alta para um sistema de CI para aumentá-las e diminuí-las constantemente, especialmente se você quiser um feedback realmente rápido.
Em um cliente anterior, basicamente inicializamos as máquinas Vagrant uma vez com o sistema e, em seguida, executamos as compilações Docker / virtualenv dentro dessas VMs e as destruímos periodicamente quando havia uma atualização importante ou um problema com o ambiente não se comportando corretamente.
https://www.packer.io/docs/builders/openstack.html
fonte