Bitbucket Pipelines

Pour les utilisateurs avancés, Bitbucket CI/CD (Continuous Integration/Continuous Delivery ou Continuous Deployment) peut automatiquement déployer des modifications de code sur votre site Kinsta chaque fois qu’un nouveau commit est poussé sur la branche désignée. Cette configuration permet un déploiement transparent du code depuis votre environnement local via SSH et Bitbucket Pipelines, permettant des mises à jour continues de votre site.

Pour suivre ces étapes, vous devez avoir un site existant hébergé sur Kinsta et un compte Bitbucket.

1. Télécharger une sauvegarde de votre site

Vous pouvez télécharger une sauvegarde de votre site pour configurer le dépôt Bitbucket et travailler dessus localement. Vous pouvez également utiliser DevKinsta pour extraire votre site du serveur Kinsta et travailler dessus localement.

Dans MyKinsta, allez dans Sites WordPress > nom du site > Sauvegardes > Télécharger > Créer une sauvegarde maintenant.

Créez une sauvegarde téléchargeable dans MyKinsta.
Créez une sauvegarde téléchargeable dans MyKinsta.

Lorsque votre sauvegarde est prête, cliquez sur Télécharger, enregistrez-la sur votre ordinateur local et décompressez les fichiers dans un dossier.

2. Configurer le dépôt Bitbucket

Ouvrez le dossier contenant les fichiers de votre site dans votre éditeur de code préféré. Pour empêcher le téléversement de fichiers WordPress inutiles, de médias ou d’informations sensibles, ajoutez un fichier .gitignore au répertoire racine de votre projet. Vous pouvez utiliser un modèle WordPress standard .gitignore, copier son contenu et l’enregistrer pour vous assurer que seuls les fichiers essentiels sont suivis.

Dans Bitbucket, allez dans votre espace de travail et créez un nouveau dépôt. Assurez-vous que les options Inclure a README et Inclure .gitignore sont réglées sur Non. Une fois le dépôt créé, vous devez également activer les pipelines. Dans le Dépôt, allez dans Réglages et sélectionnez Activer les pipelines.

3. Configurer l’authentification SSH

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

Générez une paire de clés SSH sur votre machine locale en utilisant la commande suivante, en remplaçant [email protected] par votre adresse e-mail :

ssh-keygen -t ed25519 -C "[email protected]"

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

Ouvrez et copiez la clé publique (~/.ssh/id_rsa_bitbucket.pub). Dans Bitbucket, allez dans Settings > Personal Bitbucket Settings > SSH Keys > Add key et collez les détails de la clé publique. Cela autorise votre machine à pousser du code en toute sécurité.

Ajoutez la clé SSH aux paramètres de Bitbucket.
Ajoutez la clé SSH aux paramètres de Bitbucket.

Ajoutez la même clé dans MyKinsta, allez à votre nom d’utilisateur > Réglages de l’utilisateur > Ajouter une clé SSH, collez les détails de la même clé publique et cliquez sur Ajouter une clé SSH.

4. Transférez votre code sur Bitbucket

Ouvrez le dossier contenant les fichiers de votre site dans votre éditeur de code préféré et utilisez les commandes suivantes pour pousser votre code vers Bitbucket, en remplaçant your-username et your-repo par votre nom d’utilisateur Bitbucket et le nom du dépôt :

# 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

5. Configurer l’accès SSH à Bitbucket dans MyKinsta

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

Ouvrez un nouveau terminal et connectez-vous en SSH à votre serveur Kinsta en utilisant la commande SSH terminal depuis la page Info de votre site dans MyKinsta.

Commande de terminal SSH pour votre site.
Commande de terminal SSH pour votre site.

Saisissez le mot de passe de votre site et générez une nouvelle clé SSH en utilisant la commande suivante, en remplaçant [email protected] par votre adresse e-mail :

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érez une clé SSH.
Générez une clé SSH.

6. Ajouter la clé SSH à Bitbucket

Accédez au contenu du fichier de la clé publique (par exemple, ~/.ssh/id_rsa.pub), avec la commande suivante :

cat ~/.ssh/id_rsa.pub

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

7. Configurer Git pour utiliser SSH sur le serveur Kinsta

Dans MyKinsta, sur la page Info, copiez le chemin d’accès à partir des détails de l’environnement.

Dans le terminal, naviguez vers le répertoire live de votre site avec la commande suivante, en remplaçant /www/your-site/public par le chemin copié depuis MyKinsta.

cd /www/your-site/public

Initialisez le répertoire en tant que dépôt Git et configurez l’URL distante pour utiliser SSH avec la commande suivante, en remplaçant your-username et your-repo par vos identifiants Bitbucket et votre dépôt :

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

Confirmez que la configuration SSH fonctionne en exécutant la commande suivante :

Vous devriez voir un message similaire à : « authentifié via la clé ssh ». Vous pouvez utiliser git pour vous connecter à Bitbucket. L’accès au shell est désactivé.Votre serveur Kinsta est maintenant prêt à recevoir et à déployer des mises à jour de Bitbucket directement à travers les pipelines Bitbucket.

8. Ajouter des variables d’environnement à Bitbucket

Pour stocker les informations sensibles de Kinsta en toute sécurité, vous devez ajouter des variables d’environnement à Bitbucket. Dans MyKinsta, allez dans Sites WordPress > nom du site > Info; dans la section SFTP/SSH, vous avez besoin de l’hôte, du port et du nom d’utilisateur.

Nom d'utilisateur, adresse IP et port à partir de la page Info du site.
Nom d’utilisateur, adresse IP et port à partir de la page Info du site.

Dans Bitbucket, allez dans Repository Settings > Repository Variables et ajoutez ce qui suit :

  • KINSTA_USERNAME: Il s’agit de votre nom d’utilisateur SSH pour le serveur Kinsta. Bitbucket Pipelines l’utilise pour se connecter et exécuter les commandes de déploiement.
  • KINSTA_SERVER_IP: Il s’agit de l’adresse hôte SSH de votre serveur Kinsta. Elle permet à Bitbucket Pipelines de savoir à quel serveur se connecter pour le déploiement.
  • PORT: C’est le port SSH utilisé par votre serveur Kinsta. Les serveurs Kinsta utilisent un port personnalisé, vous devez donc le spécifier ici.
  • SSH_PRIVATE_KEY: Il s’agit de votre clé privée SSH encodée en base64 depuis votre machine locale. Les pipelines Bitbucket utilisent cette clé pour s’authentifier auprès de votre serveur Kinsta. Pour encoder votre clé privée en base64, exécutez la commande suivante, copiez la sortie et ajoutez-la comme valeur :
    cat ~/.ssh/id_rsa | base64

9. Configuration du pipeline Bitbucket

Pour automatiser les déploiements, vous devez créer un fichier de configuration bitbucket-pipelines.yml. Dans le dossier local contenant les fichiers de votre site, créez un nouveau fichier appelé bitbucket-pipelines.yml et ajoutez-y le contenu suivant, en remplaçant your-site par le nom du dossier figurant dans le chemin d’accès de votre site Kinsta :

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'

Ce pipeline est mis en place pour automatiser les déploiements sur votre serveur Kinsta à chaque fois qu’il y a un nouveau push sur la branche main. Le flux de travail fait ce qui suit :

  • Déclenchement du pipeline : La section pipelines est configurée pour se déclencher lorsqu’un push est effectué sur la branche main. Cela signifie que tout nouveau commit vers la branche main démarre automatiquement le déploiement.
  • Étape : Cette étape est nommée « Déploiement vers Kinsta » pour plus de clarté. Elle contient les principales actions de déploiement.
  • SSH-run pipe : Ceci utilise le pipe atlassian/ssh-run qui permet à Bitbucket de se connecter à votre serveur Kinsta via SSH et d’exécuter des commandes à distance. Ce pipe simplifie la mise en place d’une session SSH, l’exécution des commandes et la fermeture de la session, de sorte qu’il n’y a pas besoin 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 de Bitbucket.
    • La dernière commande met à 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.

10. Testez le pipeline

Poussez le fichier de configuration bitbucket-pipelines.yml sur la branche main. Cela déclenche automatiquement le pipeline et démarre 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.

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.

Si le pipeline ne se connecte pas correctement à votre serveur Kinsta, cela peut être dû au fait que l’URL distante est définie sur HTTPS au lieu de SSH. Pour confirmer, connectez-vous en SSH à votre serveur Kinsta et exécutez la commande suivante dans le répertoire de votre site :

git remote -v

S’il affiche https:// au lieu de ssh://, vous devez mettre à jour l’URL distante afin que la clé SSH puisse être utilisée pour l’authentification. Exécutez la commande suivante pour passer à SSH :

git remote set-url origin [email protected]:your-username/your-repo.git

Après avoir mis à jour l’URL, repoussez vos modifications, et le pipeline devrait se connecter en utilisant la clé SSH.

Cet article vous a été utile ?