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.
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 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.
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.
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:
ssh -T [email protected]
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.
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 Zweigmain
erfolgt. Das bedeutet, dass jeder neue Commit in den Zweigmain
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.