Vendredi 23 novembre 2018

Git déploiement application en production

Préparer le serveur

Pour commencer il faut préparer le serveur, on se connecte en SSH
ssh user@monserveur.fr
Si vous ne l’avez pas ,installer git
sudo apt-get install git
Ensuite on va créer le dépot qui servira de “hub” ce dépôt servira de dépôt distant et permettra de lancer le déploiement lorsqu’il recevra une modification.
mkdir /home/user/MonProjet.git

Premier push

Maintenant vous revenez sur votre ordinateur ‘local) et on va envoyer nos première modificiation sur le serveur, je part du principe que vous versionnez déjà votre projet avec git et que vous avez déjà fait quelques commit.

On ajoute donc le dépôt distant et on le nomme “origin”
git remote add origin ssh://user@monserveur.fr/home/user/MonProjet.git On push nos modifications en ligne et on push la branch master
git push origin master

Créer le dossier webaccessible par Nginx

Donc vous avez votre depot qui est bien remplie mais votre site n’est toujours pas visible. On va donc cloner le dépôt dans le dossier www root web nginx et on va nommer notre site Production.
git clone /home/user/MonProjet.git /var/www/Production Et là votre site fonctionne !
Mais maintenant il faut automatiser un peu tout ça pour qu’au prochain push votre site se mette à jour tout seul comme un grand. Il faut détecter les push qui seront fait sur le dépôt git afin de déployer automatiquement le modifications.
Pour cela on va créer un *hook * au niveau de notre dépôt.
nano /home/user/MonProjet.git/hooks/post-update
Et on ajoute le code suivant :

#!/bin/bash
echo "********** mise en production *********" 
cd /var/www/Production 
unset GIT_DIR
git pull origin master

Et on s’assure que ce fichier est éxécutable :
chmod +x /home/user/MonProjet.git/hooks/post-update
C’est relativement simple. Dès qu’on a une modification du depôt on va se placer dans le dossier contenant notre site et demander un pull de la branche master. Si vous souhaitez publier une autre branche dans un dossier séparé il vous suffit de refaire cette étape en créant un autre dossier dans www et d’ajouter une autre routine dans le hook post-update.

Git déploiement wikistatic

Préparer le serveur , connexion ssh
ssh adxo@cinay.pw -p 55026 -i /home/yannick/.ssh/kvm-cinay
Création dépôt wikistatic-hub , tampon entre le git de développement local et le site de production
mkdir ~/wikistatic-hub

A partir de l’ordinateur ,créer le dépôt wikistatic-hub , tampon entre le git de développement local et le site de production
git-create.bash 'ssh -p 55026 -i /home/yannick/.ssh/kvm-cinay adxo@cinay.pw:/home/adxo/wikistatic-hub'
git-create.bash 'jonas@192.168.1.10:code/myproject.git' git-create.bash: Create new empty remote git repository via ssh A partir de l’ordinateur contenant le projet wikistatic
cd media/devel/git/wikistatic/
On ajoute donc le dépôt distant et on le nomme “origin”
git remote add origin ssh://user@monserveur.fr/home/user/MonProjet.git git remote add origin ‘ssh -p 55026 -i /home/yannick/.ssh/kvm-cinay adxo@cinay.pw:/home/adxo/wikistatic-hub.git’ On push nos modifications en ligne et on push la branch master
git push origin master