Vous avez un projet qui a des exigences logicielles à exécuter (par exemple: une version spécifique d'Apache, une version de PHP, une instance d'une base de données MySQL et quelques autres logiciels).
Vous avez déjà découvert Vagrant , donc votre environnement virtuel est entièrement configuré. Vous pouvez créer des boîtes à partir de vos fichiers de configuration et de vos livres de recettes.
Vous avez également compris les avantages d'un système d'intégration continue tel que Jenkins .
Vous souhaitez maintenant combiner ces deux mondes (Vagrant et Jenkins) pour obtenir l'environnement d'intégration continue parfait. Pour être plus précis, vous ne souhaitez pas installer le logiciel requis par votre projet sur la machine exécutant Jenkins, mais vous souhaitez utiliser l'environnement virtuel fourni par Vagrant pour construire périodiquement votre projet par-dessus. Le logiciel CI (Jenkins) va construire la boîte Vagrant pour vous et construire et tester votre projet par-dessus.
Comment configureriez-vous votre environnement pour y parvenir?
c'est une bonne solution pour construire un système, ma suggestion:
Vous pouvez probablement jeter un œil à veewee , qui peut créer une boîte vagabonde à la volée.
Voici le rendre CI plus facile avec Jenkins CI et Vagrant pour ma ligne directrice pour cette suggestion.
Vous pouvez essayer le Vagrant Plugin for Jenkins qui prend actuellement en charge Jenkins CD 1.532.3
Vous pouvez voir une démo de ce plugin en cours d'exécution sur http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html
Personnellement, je suggère d'utiliser Hashicorp Packer pour créer vos boîtes Vagrant pour les développeurs, puis de l'utiliser pour également générer une image Docker ou AWS ou OpenStack que vous pouvez exécuter sur votre système CI. Vagrant est un outil génial, mais les frais généraux des machines virtuelles peuvent être un peu élevés pour un système CI pour les faire tourner constamment de haut en bas, surtout si vous voulez des commentaires très rapides.
Sur un ancien client, nous avons essentiellement démarré les machines Vagrant une fois avec le système, puis exécuté les versions Docker/virtualenv à l'intérieur de ces machines virtuelles et nous les détruisions périodiquement en cas de mise à niveau majeure ou de problème avec l'environnement qui ne se comportait pas correctement.