2010-12-05 3 views
5

Je suis nouveau à Capistrano et je me demande quelle est la meilleure façon de gérer la configuration de Capistrano pour mon projet.Bonnes pratiques pour la gestion de la configuration Capistrano?

Plus précisément, où config/deploy.rb doit-il vivre par rapport au contrôle de source de mon projet? Dois-je stocker un modèle du fichier sans informations de configuration spécifiques? Ou cette configuration devrait-elle reposer dans son propre dépôt partagé par l'équipe?

Répondre

2

Je me suis également posé la question quand j'ai commencé à utiliser Capistrano de plus en plus. Je pense que la plupart d'entre nous conviennent qu'il est logique de suivre configuration d'exécution informations séparément de code fonctionnel droite? Donc, ne devrait pas être la même chose à propos de configuration de déploiement?

Je suppose que vous pourriez faire de votre dossier ./deploy/ un sous-module SCM. Vous pouvez faire une tâche de rake qui génère le fichier Capfile dans votre copie de travail afin que vous puissiez garder les éventuels mots de passe et autres choses à l'extérieur de l'application ... Il pourrait même y avoir une gemme disponible pour cela.

Cependant, j'opté pour une autre approche:

J'ai une dizaine d'applications différentes, dans lesquelles la majorité des variables Capistrano pourrait suivre un motif tel que set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"}, et de même pour les chemins de référentiel de code source.

J'ai levé tous les connaissances sur le déploiement à partir des applications individuelles et de le placer dans un projet de "déploiement" commun distinct. Maintenant, je peux vérifier ce projet et aller:

cap [some application] [environment] [deploy task] 

Je préfère ce modèle/séparation des préoccupations beaucoup plus que de répandre autour Capfiles partout.

1

C'est une très bonne question.

Je finis par mettre aussi tous les trucs liés à deploy.rb dans un projet de déploiement et symlinked là depuis les projets d'application. À l'époque, on regardait Webistrano parce qu'il semblait être capable de maintenir son propre pool de recettes. Comme le projet ne semble plus être maintenu, je suis allé avec l'approche ci-dessus.

Questions connexes