Déploiement d'application django (1.6.5) en Production avec git
by Jean-Michel Frouin
Historique
16/05/2014 : Changement de 'cleanup' to 'clearsessions', car :
Assumptions
Partons du principe que l'on déploie, en production, dans /var/www/mon_app
Que la gestion des dépôts git à été faite sous gitolite.
L'user de déploiement est publisher.
Enfin dans git, on à deux branches (entre autre), une dans laquelle, master, on verse les modifications à mettre en production, et une production, qui contient les commits avec la configuration de production, que l'on rebase sur master avant de la pousser.
Préparation / Mise en place
On créé initialise donc le dépôt git :
Depuis le poste du déployeur, on ajoute une branche production.
On y fait les modifications pour la production (settings.py entre autre) et on commit.
Ensuite quand des modifications seront faite sur le master, il suffira de ce remettre à jour :
Une fois cela fait il faut, initialiser la copie en production.
Pour pouvoir déployer il faut avant tout ajouter la cible de déploiement pour la mise en prod :
Ne pas oublier de ce mettre sur la branche production en ... production.
Pour que le commit puisse fonctionner il faut définir :
Puis dans un second temps, mettre en place un hook git pour initialiser l'application django.
On utilise le hook post-update c'est à dire, une fois que le dépôt à reçu la mise à jour du code.