Capistrano fonctionne très bien pour être déployé sur un seul serveur. Cependant, j'ai plusieurs serveurs d'API de production pour mon application Web. Lorsque je déploie, mon code doit être déployé sur chaque serveur d'API à la fois. La spécification manuelle de chaque serveur n'est PAS la solution que je recherche (par exemple, je ne veux pas faire "cap api1 deploy, cap api2 deploy").Comment déployer sur plusieurs serveurs de production redondants avec "cap deploy"?
Est-il possible, en utilisant Capistrano, à déployer sur tous les serveurs à la fois, avec un simple « deploy cap »? Je me demande quels sont les changements que je devrais faire un fichier deploy.rb typique, que je dois créer un fichier séparé pour chaque serveur, et si et comment le Capfile aurait besoin d'être changé. De plus, je dois pouvoir spécifier un chemin de déploiement différent pour chaque serveur. Et idéalement, je ne voudrais pas répéter les choses dans différents fichiers de configuration pour les différents serveurs (. Par exemple, ne doivent préciser: référentiel,: application, etc. plusieurs fois).
J'ai passé des heures à chercher sur Google à ce sujet et à regarder des tutoriels, mais je n'ai rien trouvé d'utile.
Voici un extrait de mon fichier en cours de deploy.rb:
set :application, "testapplication"
set :repository, "ssh://domain.com//srv/hg/#{application}"
set :scm, :mercurial
set :deploy_to, "/srv/www/#{application}"
role :web, "domain.com"
role :app, "domain.com"
role :db, "domain.com", :primary => true, :norelease => true
Devrais-je utiliser l'extension et le faire en plusieurs étapes?
task :deploy_everything do
system "cap api1 deploy"
system "cap api2 deploy"
system "cap api2 deploy"
end
Cela pourrait fonctionner, mais je me sens comme ce n'est pas ce que cette extension est destinée à ...
J'ai vu cela, mais ils ne spécifient que les noms de domaine. Comme je l'ai dit: Je dois spécifier le nom de domaine ET un chemin personnalisé par serveur. Je peux le faire « : rôle libs, « private.capify.org », « mail.capify.org » », mais comment puis-je spécifier également un chemin par serveur (et de manière compatible avec Capistrano)? –
Maintenant que vous avez réitéré l'exigence de chemin personnalisé, je suis un peu perdu. Je n'ai pas beaucoup utilisé le système. –
Okay. Merci d'avoir essayé. –