J'ai toujours viens de créer des tâches de cap pour chaque cible de déploiement et les ont utilisés sur la ligne de commande:
# deploy.rb
task :stage do
server 10.0.0.1 ...
end
> cap stage deploy
Vous pouvez également définir personnaliser des tâches à l'intérieur de chaque tâche cible, comme un Deploy qui fait le nettoyage dans mise en scène, mais ne pas en production. Étant donné que ces tâches cibles de déploiement sont rarement très importantes, je n'ai jamais vraiment vu l'intérêt d'installer les extensions de cap pour plusieurs étapes, mais je suppose que les situations des autres peuvent être différentes. Je pense que la production devrait être séparée de vos autres environnements, sinon il y a un risque que des processus mal agencés en staging ou similaire puissent affecter les performances de production.
Parfois, je définis des tâches de plafonnement pour plus de commodité lors de la mise en scène, par exemple pour dynamiter la base de données et la recharger à partir du cliché de production le plus récent. Ces tâches doivent vérifier leur cible de déploiement via une variable définie ou similaire et refuser de se présenter à la production comme une assurance contre une faute de frappe de fin de soirée.
Il est tentant de mettre beaucoup de comportement personnalisé dans votre fichier deploy.rb, mais j'ai trouvé que cela a tendance à se réduire et à nécessiter beaucoup d'efforts de maintenance en fonction de l'environnement ou de l'API.
Une autre pratique que j'ai vu avec des environnements plus grands est d'avoir un compte shell avec un checkout qui suit la branche stable spécifiquement mis en place pour agir comme le point de contrôle capistrano. Vous ssh dedans et exécutez les commandes de cap là au lieu de localement. Cela peut aider à éviter les problèmes où le fichier deploy.rb de votre commande locale comporte des modifications que vous n'êtes pas prêt à utiliser avec le déploiement en production. C'est moins un problème avec git vs svn, mais il faut quand même faire attention à ce que leur déploiement.rb local est au moment où ils exécutent les commandes cap. Heroku rend vraiment ces choses faciles ces jours-ci, et EY et d'autres ne sont pas très loin derrière.
Désolé, j'ai dû supprimer les deux liens hypertextes vers ces articles de blog afin de poster la question. Toute personne intéressée à en savoir plus peut Google ces éléments pour aller directement aux messages. – trisignia
Pourquoi avez-vous dû supprimer les hyperliens? –
Je suis un nouvel utilisateur ici, et StackOverflow ne me laissera pas encore publier d'hyperliens dans mes questions. – trisignia