Automatiser le déploiement de votre site web sur votre VPS via GitLab CI/CD
Objectif
Automatiser le déploiement de votre site web sur un VPS simplifie considérablement la gestion des mises à jour. Avec GitLab CI/CD, vous pouvez configurer un pipeline de déploiement automatique, évitant les déploiements manuels. Cette méthode garantit un déploiement rapide et fiable, tout en réduisant les risques d'erreurs humaines. Que vous soyez développeur débutant ou expérimenté, ce tutoriel vous permettra de mettre en place une solution professionnelle adaptée à vos besoins.
Découvrez comment automatiser le déploiement de vos applications web avec GitLab CI/CD sur un VPS OVHcloud.
Prérequis
- Un VPS fonctionnel dans votre compte OVHcloud
- Un compte GitLab actif
- Un projet GitLab contenant le code de votre site web
- Un VPS configuré avec les services nécessaires (ex. Apache/Nginx, PHP, SGBD, etc.)
- Disposer d'un accès administrateur au VPS (via SSH)
- Le paquet
rsyncinstallé sur le VPS (nécessaire pour la synchronisation des fichiers)
Afin d'être sûr de remplir les prérequis, consultez les guides « Installer un environnement de développement web sur un VPS ou un serveur dédié » et « Sécuriser un VPS ».
Si besoin, consultez notre guide « Débuter avec un VPS » avant de poursuivre la lecture de ce guide.
En pratique
Sommaire :
- Configurer l'accès SSH pour GitLab CI/CD
- Ajouter la clé privée à GitLab
- Configurer GitLab CI/CD pour le déploiement automatique
- Tester et vérifier le pipeline
- Conclusion
Configurer l'accès SSH pour GitLab CI/CD
Pour permettre à GitLab CI/CD de déployer automatiquement votre site web, configurez un accès SSH sécurisé à votre VPS.
Créer une paire de clés SSH
Connectez-vous à votre VPS via SSH et générez une paire de clés SSH dédiée pour GitLab CI/CD :
Remplacez <user> par l'utilisateur configuré pour se connecter à votre VPS.
Appuyez sur Entrée lorsqu'une passphrase vous est demandée (laisser la passphrase vide facilite l'automatisation du déploiement avec GitLab CI/CD. Cependant, il est impératif de sécuriser la clé privée en la limitant à cet usage et en la stockant de manière sécurisée).
Vous obtenez deux fichiers :
/home/<user>/.ssh/deploy_key: clé privée/home/<user>/.ssh/deploy_key.pub: clé publique
Consultez la documentation officielle de GitLab pour plus de détails concernant la génération d'une paire de clés SSH.
Configurer la clé publique sur le VPS
Pour permettre à GitLab CI/CD de se connecter à votre VPS via SSH et d'y déployer le code de votre site web, ajoutez la clé publique générée à la liste des clés autorisées sur le VPS.
1. Créez le répertoire .ssh :
2. Ajoutez la clé publique au fichier authorized_keys :
3. Testez la connexion SSH avec la clé privée pour confirmer que l'accès est fonctionnel :
Remplacez <user> par l'utilisateur configuré pour se connecter à votre VPS et <VPS_IP> par l'adresse IP de votre VPS.
Ajouter la clé publique à GitLab
Après avoir configuré la clé publique sur votre VPS, ajoutez-la à votre compte GitLab. Copiez le contenu de la clé publique générée sur votre VPS avec :
Suivez les étapes de la section « Add an SSH key to your GitLab account » de la documentation officielle de GitLab pour ajouter votre clé publique à votre compte GitLab.
Configurer l'accès SSH à GitLab sur le VPS
Pour garantir que GitLab utilise la clé privée générée pour établir une connexion SSH sécurisée, configurez le fichier ~/.ssh/config. Cette étape facilite les commandes ultérieures en évitant d'avoir à spécifier manuellement la clé privée à chaque interaction avec GitLab.
Sur votre VPS, créez ou modifiez le fichier ~/.ssh/config :
Ajoutez cette configuration pour l'accès à GitLab :
Sauvegardez et quittez l'éditeur.
Testez la connexion SSH avec GitLab :
Le message suivant doit apparaître :
Ajouter la clé privée à GitLab
Copiez le contenu de la clé privée générée sur votre VPS avec :
Pour ajouter la clé privée SSH comme variable CI/CD, consultez la documentation officielle de GitLab.
Configurer GitLab CI/CD pour le déploiement automatique
Créer un fichier .gitlab-ci.yml pour le pipeline
1. Dans votre projet GitLab local, créez un fichier .gitlab-ci.yml à la racine :
2. Ajoutez la configuration suivante au fichier pour déployer automatiquement votre site web :
Remplacez :
<VPS_IP>par l'adresse IP de votre VPS<user>par l'utilisateur SSH configuré sur votre VPS
3. Ajoutez le fichier au suivi Git, effectuez un commit puis poussez les modifications vers le dépôt distant :
Vérifier et tester le pipeline
Vérifier l'exécution du premier pipeline
Rendez-vous dans l'onglet Build > Pipelines du menu latéral de GitLab pour vérifier que votre premier pipeline s'est bien exécuté.
Si une erreur survient, cliquez sur le pipeline échoué pour consulter les logs.
Permissions insuffisantes
Lors du premier déploiement, des erreurs peuvent survenir concernant les permissions (Permission denied (13), rsync: failed to set times, etc.)
1. Vérifiez que l'utilisateur a les permissions nécessaires
Assurez-vous que l'utilisateur SSH configuré sur votre VPS a les droits d'écriture sur tout le répertoire Git (/var/www/html) et ses sous-répertoires :
2. Testez localement avec rsync
Avant de relancer le pipeline GitLab, testez la commande rsync manuellement à partir de votre machine locale. Cela vous permettra de confirmer que les permissions sont correctement configurées :
Si cette commande réussit, relancez ensuite le pipeline sur GitLab.
Conclusion
En suivant ce guide, vous avez mis en place un pipeline de déploiement automatique entre votre projet GitLab et votre VPS OVHcloud à l’aide de GitLab CI/CD. Ce workflow optimise considérablement la gestion des mises à jour de votre site web, en éliminant les déploiements manuels chronophages.
Aller plus loin
Pour des prestations spécialisées (référencement, développement, etc), contactez les partenaires OVHcloud.
Échangez avec notre communauté d'utilisateurs.