De nos jours, les développeurs WordPress s’appuient sur Git pour rendre le développement plus fluide et permettre à plusieurs personnes de travailler sur le même projet sans se marcher sur les pieds.

Bitbucket est une plateforme Git populaire, mais il ne suffit pas d’y avoir votre code – vous voulez aussi un moyen de connecter ce dépôt à votre serveur. De cette façon, les mises à jour poussées vers Bitbucket peuvent être automatiquement déployées sur votre serveur, ce qui permet de maintenir votre site WordPress à jour sans étapes manuelles et répétitives.

C’est là que Bitbucket Pipelines entre en jeu. Bitbucket Pipelines vous permet de mettre en place un flux de travail pour le déploiement continu, afin que les mises à jour de votre dépôt soient automatiquement déployées sur votre site. Si vous utilisez Kinsta comme hébergeur, vous pouvez utiliser SSH et Bitbucket Pipelines pour rendre tout le processus plus efficace.

Cet article explique comment mettre en place un déploiement continu pour votre site WordPress hébergé sur Kinsta à l’aide de Bitbucket Pipelines.

Pré-requis

Avant de mettre en place le déploiement continu pour votre site WordPress sur Kinsta, assurez-vous d’avoir préparé les éléments suivants :

  1. Votre site WordPress doit déjà être hébergé sur Kinsta.
  2. Un accès à la machine locale pour les fichiers de votre site WordPress.
  3. Un compte Bitbucket où vous allez stocker et pousser le code de votre site.
  4. Une connaissance de base de Git, comme la façon de pousser du code et de travailler avec un fichier .gitignore.

Configurer votre site WordPress sur Bitbucket

En tant qu’utilisateur de Kinsta, vous avez deux moyens simples d’accéder aux fichiers de votre site WordPress. Vous pouvez soit récupérer votre site du serveur Kinsta vers DevKinsta, ce qui vous permet de travailler localement, soit créer une sauvegarde téléchargeable directement depuis votre tableau de bord MyKinsta. Pour ce guide, nous utiliserons la méthode de sauvegarde.

Télécharger les fichiers de votre site WordPress

Pour télécharger une copie de vos fichiers WordPress depuis Kinsta, suivez les étapes suivantes :

  1. Naviguez vers votre site dans le tableau de bord MyKinsta.
  2. Dans la colonne latérale gauche, cliquez sur Sauvegardes pour accéder aux sauvegardes de l’environnement de votre site.
  3. Allez dans l’onglet Téléchargement et créez une sauvegarde téléchargeable.
  4. Une fois que le téléchargement est prêt, enregistrez-le sur votre PC local.

Cette sauvegarde sera un fichier compressé. Décompressez-le pour accéder à tous vos fichiers WordPress.

Configurer votre projet pour Git et créer un dépôt sur Bitbucket.

Ouvrez le dossier contenant les fichiers de votre site dans votre éditeur de code préféré. Pour éviter de télécharger des fichiers inutiles du cœur de WordPress, des téléversements de médias ou des informations sensibles, ajoutez un fichier .gitignore au répertoire racine de votre projet.

Vous pouvez utiliser un modèle standard, copier son contenu et l’enregistrer pour vous assurer que seuls les fichiers essentiels sont suivis.

Vos fichiers WordPress locaux sont maintenant préparés pour Git. Dans Bitbucket, allez dans votre espace de travail et créez un nouveau dépôt sans aucun fichier. (N’incluez pas de fichier .gitignore, car nous en avons déjà créé un localement).

Configurer l’authentification SSH et pousser vers Bitbucket

Pour vous connecter en toute sécurité à votre dépôt Bitbucket, vous devez configurer l’authentification SSH, puis pousser votre code.

  1. Générez une paire de clés SSH sur votre machine locale. Utilisez votre propre adresse e-mail dans la commande suivante :
    ssh-keygen -t ed25519 -C "[email protected]"

    Sauvegardez la paire de clés dans un emplacement que vous pouvez facilement référencer (par exemple, ~/.ssh/id_rsa_bitbucket).

  2. Copiez la clé publique (~/.ssh/id_rsa_bitbucket.pub) et ajoutez-la à Réglages personnels de Bitbucket > Clés SSH. Cela autorise votre machine à pousser du code en toute sécurité.
    Ajouter une clé SSH à Bitbucket.
    Ajouter une clé SSH à Bitbucket.

  3. Une fois la clé SSH ajoutée, utilisez les commandes suivantes pour pousser votre code sur Bitbucket :
    # Initialize a new Git repository
    git init
    # Stage all files for the first commit
    git add .
    # Commit the files with a message
    git commit -m "Initial commit of WordPress site files"
    # Add the Bitbucket repository as the remote origin
    git remote add origin [email protected]:your-username/your-repo.git
    # Push the files to Bitbucket
    git push -u origin main

    Remplacez your-username et your-repo par votre nom d’utilisateur Bitbucket et votre nom de dépôt.

Une fois que c’est fait, vous avez tout configuré sur Bitbucket. Vous pouvez ensuite configurer votre serveur Kinsta pour qu’il reçoive les mises à jour de votre dépôt Bitbucket.

Configurer votre serveur Kinsta pour les déploiements automatisés

Pour activer les déploiements automatisés à partir de Bitbucket, vous allez établir un accès SSH à Bitbucket, puis configurer Git pour qu’il utilise SSH sur le serveur Kinsta.

Étape 1 : Configurer l’accès SSH à Bitbucket pour des connexions sécurisées

Pour permettre au serveur Kinsta de tirer du code de Bitbucket, vous devez générer une clé SSH sur le serveur et ajouter sa clé publique à votre compte Bitbucket.

Connectez-vous en SSH à votre serveur Kinsta à l’aide de la commande de terminal SSH disponible dans votre tableau de bord MyKinsta :

Commande de terminal SSH de MyKinsta.
Commande de terminal SSH de MyKinsta.

Ensuite, générez une nouvelle clé SSH (passez cette étape si vous en avez déjà une) :

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Appuyez sur Entrée pour enregistrer la clé à l’emplacement par défaut et laissez la phrase de passe vide lorsque vous y êtes invité.

Générer la clé publique SSH.
Générer la clé publique SSH.

Ensuite, vous devrez ajouter la clé publique à Bitbucket. Pour accéder à la clé, utilisez cette commande :

cat ~/.ssh/id_rsa.pub

Copiez toute la sortie, puis allez dans Réglages Bitbucket > Clés SSH dans votre compte Bitbucket et ajoutez la clé publique. Cela autorisera le serveur Kinsta à accéder à votre dépôt Bitbucket en toute sécurité.

Étape 2 : Configurer Git pour utiliser SSH sur le serveur Kinsta

Naviguez vers le répertoire live de votre site sur le serveur Kinsta en exécutant la commande ci-dessous :

cd /www/your-site/public

Vous pouvez trouver ce chemin dans la section des détails de l’environnement de votre tableau de bord de site MyKinsta, comme indiqué ci-dessous :

Chemin du serveur du site WordPress.
Chemin du serveur du site WordPress.

Ensuite, initialisez le répertoire en tant que dépôt Git et configurez l’URL distante pour qu’elle utilise SSH :

git init
git remote add origin [email protected]:your-username/your-repo.git

Remplacez your-username et your-repo par votre nom d’utilisateur Bitbucket et votre nom de dépôt, respectivement.

Confirmez que la configuration SSH fonctionne en exécutant :

ssh -T [email protected]

En cas de succès, vous devriez voir un message du type : « authentifié via la clé SSH ». Vous pouvez utiliser git pour vous connecter à Bitbucket. L’accès au shell est désactivé

Avec cette configuration, votre serveur Kinsta est maintenant prêt à recevoir et à déployer des mises à jour depuis Bitbucket directement via les pipelines Bitbucket.

Configurer Bitbucket Pipelines pour un déploiement automatisé

Bitbucket Pipelines est un outil d’intégration et de livraison continues (CI/CD) qui vous permet d’automatiser des tâches lorsque vous poussez des modifications dans votre dépôt. Dans cette configuration, nous allons configurer un pipeline qui déclenche un déploiement vers Kinsta à chaque fois qu’il y a un nouveau push sur la branche main.

Ajouter les variables d’environnement nécessaires

Avant de configurer le pipeline, vous devrez configurer certaines variables d’environnement dans Bitbucket pour stocker les informations sensibles en toute sécurité. Naviguez vers Réglages du dépôt > Variables du dépôt dans Bitbucket et ajoutez ce qui suit avec sa valeur correspondante :

  • KINSTA_USERNAME: Il s’agit de votre nom d’utilisateur SSH pour le serveur Kinsta. Il est utilisé par Bitbucket Pipelines pour se connecter et exécuter les commandes de déploiement.
  • KINSTA_SERVER_IP: C’est l’adresse IP de votre serveur Kinsta. Elle permet à Bitbucket Pipelines de savoir à quel serveur se connecter pour le déploiement.
  • PORT: Il s’agit du port SSH utilisé par votre serveur Kinsta. Les serveurs Kinsta utilisent un port personnalisé, vous devez donc le spécifier ici. Vous pouvez trouver ces détails sur la page Info de votre site dans votre tableau de bord MyKinsta.

    Détails STFP/SSH de MyKinsta.
    Détails STFP/SSH de MyKinsta.

  • SSH_PRIVATE_KEY: Il s’agit de votre clé privée SSH encodée en base64 depuis votre machine locale. Bitbucket Pipelines utilisera cette clé pour s’authentifier auprès de votre serveur Kinsta. Pour encoder votre clé privée en base64, exécutez :
    cat ~/.ssh/id_rsa | base64

    Copiez la sortie et ajoutez-la comme valeur pour SSH_PRIVATE_KEY.

Configuration du pipeline Bitbucket

Maintenant, écrivons le fichier de configuration, bitbucket-pipelines.yml, pour automatiser les déploiements. Ce fichier définit le pipeline, en précisant quand il doit s’exécuter, quelles commandes exécuter et comment se connecter à votre serveur Kinsta. Vous pouvez le faire localement dans votre IDE.

Voici la configuration complète :

pipelines:
  branches:
    main:
      - step:
          name: Deploy to Kinsta
          script:
            - pipe: atlassian/ssh-run:0.8.1
              variables:
                SSH_USER: $KINSTA_USERNAME
                SERVER: $KINSTA_SERVER_IP
                PORT: $PORT
                COMMAND: |
                  cd /www/your-site/public &&
                  git fetch origin main &&
                  git reset --hard origin/main
                SSH_KEY: $SSH_PRIVATE_KEY
                DEBUG: 'true'

Un examen plus approfondi de la configuration de ce pipeline

Ce pipeline est configuré pour automatiser les déploiements sur votre serveur Kinsta chaque fois qu’il y a un nouveau push sur la branche main. Voici une décomposition de ce que fait chaque partie :

  • Déclencheur de pipeline : La section pipelines est configurée pour se déclencher sur les poussées vers la branche main. Cela signifie que tout nouveau commit vers main lancera automatiquement le déploiement.
  • Étape : L’étape est nommée « Deploy on sur Kinsta » pour plus de clarté. Cette étape contient les principales actions de déploiement.
  • SSH-run pipe : Nous utilisons le atlassian/ssh-run pipe, qui permet à Bitbucket de se connecter à votre serveur Kinsta via SSH et d’exécuter des commandes à distance. Ce pipeline simplifie le processus de configuration d’une session SSH, d’exécution des commandes et de fermeture de la session, de sorte qu’il n’est pas nécessaire de gérer manuellement les détails SSH dans le script.
  • Commandes de déploiement : Le bloc COMMAND contient les commandes qui déploient le dernier code sur votre site WordPress. Voici ce que fait chaque commande :
    • La première commande navigue vers le répertoire live où WordPress est hébergé.
    • La deuxième commande exécute ensuite git fetch origin main pour extraire le dernier code de la branche principale dans Bitbucket.
    • La dernière commande met ensuite à jour le site live avec le dernier code de la branche principale.

Cette configuration gère tous les aspects du déploiement – de la connexion à Kinsta à la mise à jour des fichiers de votre site – de sorte que votre site WordPress sur Kinsta restera automatiquement à jour à chaque poussée vers main.

Tester le pipeline

Sauvegardez le fichier bitbucket-pipelines.yml dans le répertoire racine de votre dépôt et validez les modifications. Lorsque vous le pousserez sur la branche main, le pipeline se déclenchera automatiquement et commencera le processus de déploiement.

Vous pouvez suivre la progression du déploiement dans le tableau de bord Bitbucket Pipelines. Si tout est configuré correctement, Bitbucket se connectera à votre serveur Kinsta, récupérera le dernier code et le déploiera sur votre site en production.

Journaux du pipeline Bitbucket.
Journaux du pipeline Bitbucket.

Pour le dépannage, vérifiez les journaux du pipeline dans Bitbucket, en particulier si DEBUG est défini sur "true". Les journaux fournissent des informations détaillées sur chaque étape, ce qui peut aider à identifier tout problème de connexion ou de configuration.

Résumé

La mise en place de déploiements automatisés de Bitbucket vers Kinsta est un moyen puissant de garder votre site WordPress à jour sans les tracas des mises à jour manuelles. Après avoir connecté Bitbucket Pipelines et votre serveur Kinsta, chaque poussée vers votre dépôt est immédiatement répercutée sur votre site en production, ce qui minimise les temps d’arrêt et réduit les erreurs de déploiement.

N’oubliez pas que DevKinsta offre une option plus simple pour les développeurs en solo. DevKinsta vous permet de pousser votre environnement de développement local directement sur Kinsta en un seul clic, évitant ainsi la nécessité d’une configuration de pipeline. Un avantage supplémentaire de cette approche est que les modifications apportées à votre base de données peuvent également être incluses, ce qui permet de synchroniser votre code et votre contenu sans effort.

Que pensez-vous de ce processus ? Vous avez des questions ou vous avez rencontré des problèmes ? Faites-nous part de vos réactions ou de vos questions dans les commentaires ci-dessous !

Joel Olawanle Kinsta

Joel est un développeur d'interfaces publiques qui travaille chez Kinsta en tant que rédacteur technique. Il est un enseignant passionné par l'open source et a écrit plus de 200 articles techniques, principalement autour de JavaScript et de ses frameworks.