2010-07-21 6 views
1

D'après ce que je comprends par défaut, le code par défaut sera également déployé tous les rôles définis. Disons que vous avez un db sur une autre machine que votre serveur web. Vous définissez les rôles pour le serveur Web et la base de données, puis déployez-les. Actuellement, mon script capistrano déploie la source sur les deux machines. Je veux qu'il déploie la source uniquement sur le serveur Web.Déploiement de Capistrano lorsque db n'est pas la même machine que le serveur Web

Comment cela peut-il être fait? Le site de Capistrano a principalement des exemples d'architectures à une seule machine.

+1

Corrigez-moi si je me trompe mais vous aurez besoin du code sur la machine db pour lancer les migrations et quoi d'autre, non? – rfunduk

+0

ah raison, mauvais exemple je suppose. Je ne parlais pas vraiment d'un db (c'était juste mon exemple). Je parlais d'une config pour un équilibreur de charge qui se trouve dans un dépôt. devinez ce que je veux réellement est juste la copie de la config que je sais comment faire. Désolé encore une question stupide. : P –

+0

Vous pouvez toujours définir de nouveaux rôles, affecter des serveurs par rôle et définir des tâches à exécuter uniquement dans un rôle défini ... – mpapis

Répondre

1

Dans mon cas, j'ai des serveurs web et app distincts. Afin de ne pas déployer le code sur le serveur web, j'utiliser ce qui suit:

role :web, "myappserver.com", :no_release => true 

De nombreuses tâches à Capistrano sont qualifiés pour ne pas exécuter lorsque cette variable est définie.

Questions connexes