Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
symfony5:deploiement_avec_git_et_ssh [2021/04/10 15:49] marclebrun [Écrire le script de réception] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Déploiement avec GIT et SSH ====== | ||
- | |||
- | ===== Configurer l'accès SSH sur le serveur ===== | ||
- | |||
- | Source : [[https://medium.com/@stadja/tout-sur-comment-se-connecter-%C3%A0-un-serveur-ssh-sans-mot-de-passe-b2cc5c0a86e1]] | ||
- | |||
- | ==== Générer une clé SSH ==== | ||
- | |||
- | Si on n'en a pas encore une, créer une paire de clés avec cette commande : | ||
- | |||
- | <code bash> | ||
- | ssh-keygen -t rsa -b 2048 -C "mon-adresse@email" | ||
- | </code> | ||
- | |||
- | * **Chemin de la sauvegarde** : accepter le chemin et le nom du fichier proposés. | ||
- | * **passphrase** : ne pas mettre de passphrase sinon il faudra l'entrer à chaque fois qu'on voudra utiliser cette paire de clés. | ||
- | |||
- | Deux fichiers sont créés : | ||
- | |||
- | <code bash> | ||
- | /home/marc/.ssh/id_rsa # clé privée | ||
- | /home/marc/.ssh/id_rsa.pub # clé publique | ||
- | </code> | ||
- | |||
- | ==== Envoyer la clé publique sur le serveur ==== | ||
- | |||
- | <code bash> | ||
- | ssh-copy-id marc@SERVEUR | ||
- | </code> | ||
- | |||
- | Entrer le mot de passe de cet utilisateur sur le serveur. | ||
- | |||
- | ==== Tester la connexion ==== | ||
- | |||
- | <code bash> | ||
- | ssh marc@SERVEUR | ||
- | </code> | ||
- | |||
- | Normalement l'accès est maintenant autorisé sans entrer de mot de passe. | ||
- | |||
- | ===== Configurer le déploiemement ===== | ||
- | |||
- | Source: [[https://medium.com/@stadja/comment-d%C3%A9ployer-sur-un-serveur-distant-en-une-commande-git-pas-%C3%A0-pas-bdcf5aaf172d]] | ||
- | |||
- | ==== Créer le dépôt distant ==== | ||
- | |||
- | Sur le serveur, se placer dans le dossier **home** de l'utilisateur, | ||
- | et initialiser un dépôt vide. | ||
- | |||
- | <code bash> | ||
- | cd /home/marc | ||
- | git init --bare monprojet.git | ||
- | </code> | ||
- | |||
- | ==== Écrire le script de réception ==== | ||
- | |||
- | Fichier **/home/marc/monprojet.git/hooks/post-receive** | ||
- | |||
- | Quand le dépôt recevra un **push**, il exécutera ce script pour déplacer | ||
- | les fichiers vers leur destination. | ||
- | |||
- | <code bash /home/marc/monprojet.git/hooks/post-receive> | ||
- | </code> | ||
- | |||
- | Rendre ce fichier exécutable : | ||
- | |||
- | <code bash> | ||
- | chmod a+x /home/marc/monprojet.git/hooks/post-receive | ||
- | </code> | ||
- | |||
- | |||
- | ==== Utiliser le dépôt distant ==== | ||
- | |||
- | Sur la machine de développement, ajouter le serveur de production comme dépôt distant, | ||
- | que l'on va nommer **prod** : | ||
- | |||
- | <code bash> | ||
- | git remote add prod marc@SERVEUR:/home/marc/monprojet.git | ||
- | </code> | ||
- | |||
- | ===== Premier déploiement ===== | ||
- | |||
- | Faire un déploiement vers le dépôt **prod** : | ||
- | |||
- | <code bash> | ||
- | git push prod master | ||
- | </code> | ||