Bitbucket Pipelines

Fortgeschrittene Nutzer können mit Bitbucket CI/CD (Continuous Integration/Continuous Delivery oder Continuous Deployment) automatisch Codeänderungen auf deiner Kinsta-Website bereitstellen, sobald ein neuer Commit in den entsprechenden Zweig gepusht wird. Dieses Setup ermöglicht eine nahtlose Bereitstellung des Codes von deiner lokalen Umgebung aus über SSH und Bitbucket Pipelines, so dass deine Website kontinuierlich aktualisiert werden kann.

Um diese Schritte zu befolgen, musst du eine bestehende Website auf Kinsta hosten und ein Bitbucket-Konto haben.

1. Lade ein Backup deiner Website herunter

Du kannst ein Backup deiner Website herunterladen, um das Bitbucket-Repository einzurichten und lokal daran zu arbeiten. Alternativ kannst du DevKinsta verwenden, um deine Website vom Kinsta-Server zu holen und lokal zu bearbeiten.

Gehe in MyKinsta auf WordPress Websites > seitenname > Backups > Download > Backup jetzt erstellen.

Erstelle ein herunterladbares Backup in MyKinsta
Erstelle ein herunterladbares Backup in MyKinsta

Wenn dein Backup fertig ist, klicke auf Download, speichere es auf deinem lokalen Computer und entpacke die Dateien in einen Ordner.

2. Richte das Bitbucket-Repository ein

Öffne den Ordner mit den Dateien deiner Website in deinem bevorzugten Code-Editor. Um zu verhindern, dass unnötige WordPress-Kerndateien, Medien-Uploads oder sensible Informationen hochgeladen werden, füge eine .gitignore Datei in das Stammverzeichnis deines Projekts ein. Du kannst eine WordPress-Standardvorlage .gitignore verwenden, ihren Inhalt kopieren und sie speichern, um sicherzustellen, dass nur die wichtigsten Dateien verfolgt werden.

Gehe in Bitbucket zu deinem Arbeitsbereich und erstelle ein neues Repository. Stelle sicher, dass Include a README und Include .gitignore auf No stehen. Sobald das Repository erstellt ist, musst du auch die Pipelines aktivieren. Gehe im Repository zu Einstellungen und wähle Pipelines aktivieren.

3. SSH-Authentifizierung einrichten

Um eine sichere Verbindung zu deinem Bitbucket-Repository herzustellen, musst du die SSH-Authentifizierung einrichten.

Erstelle ein SSH-Schlüsselpaar auf deinem lokalen Rechner mit folgendem Befehl und ersetze [email protected] durch deine E-Mail-Adresse:

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

Speichere das Schlüsselpaar an einem Ort, den du leicht wiederfinden kannst (z.B. ~/.ssh/id_rsa_bitbucket).

Öffne und kopiere den öffentlichen Schlüssel (~/.ssh/id_rsa_bitbucket.pub). In Bitbucket gehst du zu Einstellungen > Persönliche Bitbucket-Einstellungen > SSH-Schlüssel > Schlüssel hinzufügen und fügst die Details des öffentlichen Schlüssels ein. Damit wird dein Rechner autorisiert, Code sicher zu pushen.

Füge den SSH-Schlüssel zu den Bitbucket-Einstellungen hinzu
Füge den SSH-Schlüssel zu den Bitbucket-Einstellungen hinzu

Füge denselben Schlüssel in MyKinsta hinzu, indem du zu deinem Benutzernamen > Benutzereinstellungen > SSH-Schlüssel hinzufügen gehst, dieselben Details des öffentlichen Schlüssels einfügst und auf SSH-Schlüssel hinzufügen klickst.

4. Push deinen Code zu Bitbucket

Öffne den Ordner mit den Dateien deiner Website in deinem bevorzugten Code-Editor und benutze die folgenden Befehle, um deinen Code zu Bitbucket zu übertragen. Ersetze dabei your-username und your-repo durch deinen Bitbucket-Benutzernamen und den Namen des Repositorys:

# 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. SSH-Zugang in MyKinsta zu Bitbucket einrichten

Damit der Kinsta-Server Code von Bitbucket abrufen kann, musst du einen SSH-Schlüssel auf dem Server erstellen und seinen öffentlichen Schlüssel zu deinem Bitbucket-Konto hinzufügen.

Öffne ein neues Terminal und logge dich mit dem SSH-Terminalbefehl von der Info-Seite deiner Website in MyKinsta in deinen Kinsta-Server ein.

SSH-Terminal-Befehl für deine Website
SSH-Terminal-Befehl für deine Website

Gib das Passwort deiner Website ein und generiere dann einen neuen SSH-Schlüssel mit dem folgenden Befehl, wobei du [email protected] durch deine E-Mail-Adresse ersetzt:

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

Drücke die Eingabetaste, um den Schlüssel am Standardspeicherort zu speichern und lass die Passphrase leer, wenn du dazu aufgefordert wirst.

Erstelle einen SSH-Schlüssel
Erstelle einen SSH-Schlüssel

6. Hinzufügen des SSH-Schlüssels zu Bitbucket

Greife mit folgendem Befehl auf den Inhalt der öffentlichen Schlüsseldatei zu (z.B. ~/.ssh/id_rsa.pub):

cat ~/.ssh/id_rsa.pub

Kopiere die gesamte Ausgabe, gehe dann in Bitbucket zu Einstellungen > Persönliche Bitbucket-Einstellungen > SSH-Schlüssel > Schlüssel hinzufügen und füge den öffentlichen Schlüssel hinzu. Dadurch wird der Kinsta-Server autorisiert, sicher auf dein Bitbucket-Repository zuzugreifen.

7. Git für die Verwendung von SSH auf dem Kinsta-Server konfigurieren

Kopiere in MyKinsta auf der Seite Info den Pfad aus den Umgebungsdetails.

Navigiere im Terminal mit folgendem Befehl zum Live-Verzeichnis deiner Website und ersetze /www/your-site/public durch den aus MyKinsta kopierten Pfad.

cd /www/your-site/public

Initialisiere das Verzeichnis als Git-Repository und setze die Remote-URL mit dem folgenden Befehl auf SSH, wobei du your-username und your-repo durch deine Bitbucket-Zugangsdaten und das Repository ersetzt:

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

Bestätige, dass die SSH-Einrichtung funktioniert, indem du den folgenden Befehl ausführst:

Du solltest eine Meldung ähnlich der folgenden sehen: „authenticated via ssh key“. Du kannst Git verwenden, um dich mit Bitbucket zu verbinden. Der Shell-Zugang ist deaktiviert.“ Dein Kinsta-Server ist jetzt bereit, Updates von Bitbucket zu empfangen und direkt über Bitbucket-Pipelines zu verteilen.

8. Umgebungsvariablen zu Bitbucket hinzufügen

Um sensible Kinsta-Informationen sicher zu speichern, musst du Umgebungsvariablen zu Bitbucket hinzufügen. In MyKinsta gehst du zu WordPress Websites> Site-Name > Info; im Abschnitt SFTP/SSH brauchst du den Host, den Port und den Benutzernamen.

Benutzername, IP-Adresse und Port von der Info-Seite der Website.
Den Benutzernamen, die IP-Adresse und den Port findest du auf der Info-Seite der Website

In Bitbucket gehst du zu Repository Settings > Repository Variables und fügst Folgendes hinzu:

  • KINSTA_USERNAME: Dies ist dein SSH-Benutzername für den Kinsta-Server. Bitbucket Pipelines verwendet ihn, um sich anzumelden und Verteilungsbefehle auszuführen.
  • KINSTA_SERVER_IP: Dies ist die SSH-Host-Adresse deines Kinsta-Servers. Damit weiß Bitbucket Pipelines, mit welchem Server es sich für die Bereitstellung verbinden muss.
  • PORT: Dies ist der SSH-Port, der von deinem Kinsta-Server verwendet wird. Kinsta-Server verwenden einen eigenen Port, den du hier angeben musst.
  • SSH_PRIVATE_KEY: Dies ist dein mit base64 verschlüsselter privater SSH-Schlüssel von deinem lokalen Rechner. Bitbucket-Pipelines verwenden diesen Schlüssel, um sich bei deinem Kinsta-Server zu authentifizieren. Um deinen privaten Schlüssel in base64 zu kodieren, führe den folgenden Befehl aus, kopiere die Ausgabe und füge sie als Wert hinzu:
    cat ~/.ssh/id_rsa | base64

9. Bitbucket Pipeline Konfiguration

Um die Bereitstellung zu automatisieren, musst du eine Konfigurationsdatei bitbucket-pipelines.yml erstellen. Erstelle in dem lokalen Ordner, der die Dateien deiner Website enthält, eine neue Datei mit dem Namen bitbucket-pipelines.yml und füge den folgenden Inhalt in die Datei ein, wobei du your-site durch den Ordnernamen aus dem Pfad auf deiner Kinsta-Website ersetzt:

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'

Diese Pipeline ist so eingerichtet, dass sie die Bereitstellung auf deinem Kinsta-Server immer dann automatisiert, wenn es einen neuen Push für den main -Zweig gibt. Der Workflow geht folgendermaßen vor:

  • Pipeline-Auslöser: Der Abschnitt pipelines ist so konfiguriert, dass er ausgelöst wird, wenn ein Push in den Zweig main erfolgt. Das bedeutet, dass jeder neue Commit in den Zweig main automatisch die Bereitstellung startet.
  • Schritt: Dieser Schritt heißt der Übersichtlichkeit halber „Deploy to Kinsta“. Er enthält die wichtigsten Aktionen für die Bereitstellung.
  • SSH-Run-Pipe: Hier wird die atlassian/ssh-run Pipe ausgeführt, die es Bitbucket ermöglicht, sich über SSH mit deinem Kinsta-Server zu verbinden und Befehle aus der Ferne auszuführen. Diese Pipe vereinfacht das Einrichten einer SSH-Sitzung, das Ausführen der Befehle und das Schließen der Sitzung, sodass du die SSH-Details nicht manuell im Skript verwalten musst.
  • Bereitstellungsbefehle: Der Block COMMAND enthält die Befehle, mit denen der neueste Code auf deiner WordPress-Website bereitgestellt wird. Jeder Befehl hat folgende Funktion:
    • Der erste Befehl navigiert zu dem Live-Verzeichnis, in dem WordPress gehostet wird.
    • Der zweite Befehl führt git fetch origin main aus, um den neuesten Code aus dem Hauptzweig in Bitbucket zu ziehen.
    • Der letzte Befehl aktualisiert dann die Live-Site mit dem neuesten Code aus dem Hauptzweig.

Diese Konfiguration kümmert sich um alle Aspekte der Bereitstellung – von der Verbindung zu Kinsta bis zur Aktualisierung deiner Website-Dateien – so dass deine WordPress-Website auf Kinsta bei jedem Push auf main automatisch auf dem neuesten Stand bleibt.

10. Teste die Pipeline

Übertrage die Konfigurationsdatei bitbucket-pipelines.yml und schiebe sie in den Zweig main. Dadurch wird die Pipeline automatisch gepusht und der Bereitstellungsprozess gestartet. Du kannst den Fortschritt der Bereitstellung im Bitbucket Pipelines Dashboard überwachen. Wenn alles richtig eingerichtet ist, verbindet sich Bitbucket mit deinem Kinsta-Server, holt sich den neuesten Code und stellt ihn auf deiner Live-Site bereit.

Zur Fehlersuche solltest du die Pipeline-Protokolle in Bitbucket überprüfen, vor allem, wenn DEBUG auf "true" eingestellt ist. Die Protokolle enthalten detaillierte Informationen zu jedem Schritt, die helfen können, Verbindungs- oder Konfigurationsprobleme zu erkennen.

Wenn die Pipeline keine Verbindung zu deinem Kinsta-Server herstellt, könnte das daran liegen, dass die Remote-URL auf HTTPS statt auf SSH eingestellt ist. Um dies zu überprüfen, logge dich per SSH in deinen Kinsta-Server ein und führe den folgenden Befehl im Verzeichnis deiner Website aus:

git remote -v

Wenn dort https:// statt ssh:// angezeigt wird, musst du die Remote-URL aktualisieren, damit der SSH-Schlüssel zur Authentifizierung verwendet werden kann. Führe den folgenden Befehl aus, um zu SSH zu wechseln:

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

Nachdem du die URL aktualisiert hast, pushst du deine Änderungen erneut und die Pipeline sollte sich mit dem SSH-Schlüssel verbinden.

War dieser Artikel hilfreich?