L'exemple ci-dessous est adapté à mon hébergement chez Dreamhost, à vous de le modifier selon vos besoins.
Capistrano est un outils de déploiement d'application web qui permet d'automatiser la mise en production d'une nouvelle version . Les possibilités sont énormes, voir le site officiel pour tous les détails, dans cet article je vous vais vous décrire un exemple d'utilisation de Capistrano pour déployer chez votre hébergeur votre application Rails développée en local sur le serveur WEBrick (serveur de développement inclus dans rails).
Il y a un pré-requis, vous devez versionner votre projet avec Subversion car le déploiement va se faire du serveur Subversion vers le serveur web, l'hébergeur Dreamhost inclu Subversion dans son offre de base mais vous pouvez très bien héberger vous même le serveur Subversion sur votre propre machine.
Dans un premier temps, vous devez versionner correctement votre projet car se sont les fichiers qui se trouvent dans votre "subversion repository" qui seront envoyés sur votre serveur web.
Versionnement du projet :
Import initial du projet sur le serveur Subversion
svn import monprojet/ http://svn.mondomaine.com/monprojet -m "Import initial"Checkout du projet pour créer votre copie de travail en local
svn checkout http://svn.mondomaine.com/monprojet monprojetOn se place à la racine de l'application
cd monprojetOn supprime les fichiers de log dans Subversion pour ne pas les déployer sur le serveur de production et on les ignore .
svn remove log/*
svn commit -m 'suppression des fichiers de log de subversion'
svn propset svn:ignore "*.log" log/
svn update log/
svn commit -m 'on ignore les fichiers du répertoire /log/ qui se terminent par .log'On ignore le contenu du répertoire /tmp/
svn remove tmp/*
svn propset svn:ignore "*" tmp/
svn update tmp/
svn commit -m "ignore contenu de tmp/ "Pour les fichiers qui doivent être différents en local et sur le serveur, par exemple le fichier de configuration de la librairie auth_generator, je versionne une version de production et une version de développement (auth_generator.yml.prd et auth_generator.yml.dev) nous verrons pourquoi dans la configuration de Capistrano. Je fais également la même chose avec le .htaccess du répertoire /public (la ligne -> "RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]" sur le serveur diffère de la version de développement "RewriteRule ^(.*)$ dispatch.cgi [QSA,L]" )
svn remove auth_generator.yml
svn propset svn:ignore auth_generator.yml
svn commit -m "ignore auth_generator.yml"
svn remove .htaccess
svn propset svn:ignore .htaccess
svn commit -m "ignore .htaccess"Capistrano :
Installation de Capistrano
sudo gem install capistranoCréation des fichiers Capistrano
cap -A .Modification du fichier config/deploy.rb, voir mon exemple ici.
Création de la structure de répertoire sur votre hébergement.
rake remote:exec ACTION=setupDéploiement de l'application :
rake deployC'est tout, si il n'y a pas d'erreur dans le fichier deploy.rb la nouvelle version de votre application est en ligne, ça peut paraître un peu fastidieux en début de projet mais tellement simple par la suite que l'on ne peux plus s'en passer.
Si vous faites une erreur lors d'une nouvelle version il existe la commande "rake rollback" qui vous permettra de revenir à la version précédente.
Cet article est un exemple rapide d'utilisation, je vous conseille de vous documenter d'avantage sur le site officiel pour bien comprendre le fonctionnement.
Articles similaires
- Comment choisir son langage/framework de développement web?
- Pourquoi choisir CakePHP au détriment de Ruby on Rails
- Créer un projet subversion chez l'hébergeur Dreamhost
- Rails - moteur de recherche pour l'API Ruby On Rails
- Quel developpeur Rails êtes vous?
- Rails - Pense-bête
- EasyEclipse nouvelle version
- Rails - Des titres dynamiques pour votre application rails
- Rails - Helper pour afficher un score sous forme d'image
- David H. Hansson on the Future of Rails



Merci pour ce tuto! Il
Merci pour ce tuto! Il traite le problème de manière vraiment complète! J'espère lire un prochain tuto sur l'utilisation de capistrano avec plusieurs serveurs (déploiement sur cluster).
Bonne continuation.
Je n'ai malheureusement pas
Je n'ai malheureusement pas de cluster sous la main ;)
[...] Déploiement d’une
[...] Déploiement d’une application rails [...]
[...] Suite à mon
[...] Suite à mon précédent article sur le déploiement d’une application rails, j’ai apporté un petite modification dans mon fichier config/deploy.rb [...]
[...] Déploiement d’une
[...] Déploiement d’une application Rails avec Capistrano [...]
[...] Déploiement d’une
[...] Déploiement d’une application Rails avec Capistrano [...]
[...] Déploiement d’une
[...] Déploiement d’une application Rails avec Capistrano [...]
bonjour je n'arrive pas à
bonjour
je n'arrive pas à exécuter
rake remote:exec ACTION=setup
les messages sont:
Capistrano/Rake integration is deprecated.
Please invoke the 'cap' command directly: `cap setup'
rake aborted!
compile error
./config/deploy.rb:1: Invalid char `\377' in expression
./config/deploy.rb:1: Invalid char `\376' in expression
(See full trace by running task with --trace)
une idée?
bonjour, j'ai trouvé la
bonjour,
j'ai trouvé la cause: l'encodage des caractères de mon fichier était en utf...
Tout repris en iso et la commande "cap setup" ne génère plus de messages d'erreur.
[...] Subversion est un
[...] Subversion est un logiciel de gestion de versionnement, il est le remplacent de CVS. Il est utilisé principalement dans le développement de logiciel mais peux permettre de suivre les différentes versions de n'importe quel fichier informatique. Nous allons voir dans cet article comment créer un projet Subversion chez l'hébergeur Dreamhost.Se rendre dans le panneau de contrôle de votre hébergement Dreamhost à l'adresse https://panel.dreamhost.com et dans le menu de gauche cliquer sur "Goodies" et "Subversion"L'écran principale de gestion des projets Subversion se décompose en deux parties : La liste des projets déjà créésLe formulaire de création d'un nouveau projetRemplir les différents champs du formulaireNom du projet et identifiant du projetDans le champs "install to" sélectionner un des domaines ou sous-domaines que vous hébergez sur votre compteDans le champ "users", créer les différents utilisateurs qui auront accès au projetDans la partie "visibility", définir le type d'accès que l'on donne au projetPrivate : seulement les utilisateurs créés précédemment pourront voir et modifier les fichiersPublic : tout le monde pourra voir les fichiers mais seul les utilisateurs créés pourront les modifierIl ne reste plus qu'à cliquer sur le bouton " Create my new project repository now! "Après quelques minutes, votre projet et actif.Nous verrons dans un prochain billet comment versionner un projet php basé sur le framework CakePHP.Vous pouvez également voir un exemple d'utilisation pour un projet Rails ici.Liens externes :Le site officiel de SubversionUn introduction à Subversion (en français)Les offres d'hébergement chez Dreamhost [...]
[...] Déploiement d’une
[...] Déploiement d’une application Rails avec Capistrano [...]