Mise à jour d'un server de mise en scène (à partir d'un server CI) dans une boîte Vagrant avec Chef

J'utilise Vagrant + Chef (chef_client provisioner) pour créer et fournir un environnement intermédiaire pour mon server. Et j'ai un travail Jenkins mis en place qui est exécuté chaque fois que je pousser à ma twig "développer".

Dans le travail de Jenkins, je souhaite mettre à jour et rebuild le code source du server dans la boîte de assembly et le redémarrer.

J'ai déjà écrit les livres de cuisine qui installent les dependencies, configurent le db etc. Mais je ne sais pas comment exécuter uniquement la mise à jour et rebuild et redémarrer le contenu des livres de cuisine. Je comprends que je pourrais toujours détruire toute la boîte et la rebuild, mais la provision de la boîte est un process long, donc j'aimerais faire cela aussi peu que possible.

J'ai divisé mon livre de recettes de server en 3 recettes: dependencies, db_setup et server. Ce que je veux faire dans mon travail Jenkins est la recette "server". Mais je ne comprends pas comment puis-je le faire … Si je spécifie la run_list sur mon server Chef, je perds la possibilité de réparer la boîte entière à partir de zéro.

Fondamentalement, j'aimerais pouvoir dire à Vagrant de la command line quelles recettes le chef devrait exécuter. Est-ce possible en quelque sorte?

À votre santé!

Les ressources du chef sont supposées être idempotentes afin que vous puissiez exécuter le chef-client une fois et à l'autre sans avoir réinstallé le logiciel, à less qu'il n'y ait effectivement un changement que vous souhaitez. Vous pouvez créer votre chef-recette pour ne faire qu'une nouvelle version du code s'il y a un changement depuis la dernière fois qu'il a été exécuté.

Ainsi, vous pouvez avoir une recette qui ne fait que la mise à jour et la reconstruction en cas de changement, puis, dans la pièce de reconstruction, vous pouvez notifier: redémarrer sur tous les services concernés (c'est-à-dire le process que je suis en train de suivre en ce moment).

Consultez cette réponse pour plus de détails sur idempotence et les invocations répétitives du chef https://stackoverflow.com/questions/4913521/chef-repetitive-recipe-execution