Wir haben den Git-Client bei Kinsta zur Verfügung, so dass du SSH einlegen und dein eigenes Git-Repo von Github, Gitlab, Bitbucket oder anderen Drittanbietern herunterladen kannst. Der Zugang zu SSH ist für alle Hosting-Angebote von Kinsta verfügbar.

Wenn du gerade erst anfangst, solltest du unbedingt unseren Leitfaden zu Git vs. Github lesen.

Wir haben jedoch noch nicht die Funktion veröffentlicht, mit der du einfach git push kinsta my_site kannst, und es wird automatisch bereitgestellt. Dieser Teil kommt bald. Du kannst Git bei Kinsta trotzdem problemlos verwenden. Folge einfach den Anweisungen unten.

Wie benutzt man Git?

Du kannst in wenigen Minuten ein Bereitstellungsskript erstellen, das SSH in deinen Google Cloud Linux-Container enthält und die neueste Version deines Repos herunterlädt.

Deine SSH-Details für deine Kinsta-Webseite findest du auf der „Info“-Seite deiner Webseite.

SSH Terminal Befehl in MyKinsta.

SSH Terminal Befehl in MyKinsta.

ssh my_site@1.2.3.4 -p PORT "cd /www/my_site/public && git pull"

Eine andere Möglichkeit, dies zu tun, besteht in der Verwendung von WP Pusher. Viele unserer Kunden verwenden dies und es macht es sehr einfach, da du nicht wissen musst, wie man Git oder SSH verwendet.

Austin hat auch ein hervorragendes Tutorial, wie man mit SSH die automatische Git-Bereitstellung mit Kinsta einrichten kann.

Einige andere Alternativen sind Beanstalk und DeployBot. Ansonsten kannst du die detaillierteren Git-Anweisungen unten befolgen.

Clone Repo

So klonst du ein Repo:

git clone https://github.com/USER/REPO.git

Wenn du Git für private Repositorys verwendest, verwende deinen GitHub-Usernamen und dein Kennwort, die an den Server übergeben werden.

git clone https://username:password@github.com/USER/REPO.git

Wenn die Zwei-Faktor-Authentifizierung aktiviert ist, muss ein OAuth-Token anstelle deiner Standardberechtigungsnachweise verwendet werden. Befolge diese Anweisungen, um ein OAuth-Token zu erstellen.

So klonst du ein Repo, für das 2FA aktiviert ist:

git clone https://TOKEN@github.com/USER/REPO.git

Private Repo

Wenn es sich um ein privates Repo handelt, müssen Anmeldeinformationen zum git pull hinzugefügt werden:

Pull

ssh my_site@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://username:password@github.com/USER/REPO"

Private Repo mit 2FA

Wenn die Zwei-Faktor-Authentifizierung aktiviert ist, muss ein OAuth-Token anstelle deiner Standardberechtigungsnachweise verwendet werden. Befolge diese Anweisungen, um ein OAuth-Token zu erstellen. So stellst du ein Repo bereit, für das 2FA aktiviert ist:

Pull

ssh my_site@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://TOKEN@github.com/USER/REPO"

Wenn der oben angegebene git pull keine Anmeldeinformationen und den HTTPS-Pfad enthält, versucht er, lokal zu suchen (und nicht auf das gehostete Repo), und gibt die Nachricht aus: „Everything up-to-date.” („Alles aktuell.“)

Umgang mit festgestellten Konflikten

Wenn du in Remote etwas änderst, werden die oben aufgeführten Bereitstellungsbefehle aufgrund von gefundenen Konflikten abgebrochen. Was solltest du dann tun? Es hängt davon ab, welche du als „King“ („König“) behandeln willst. In diesem Beispiel werden wir das Git-Repo als „King“ („König“) behandeln und die Konflikte vergessen.

Force Pull

Faire Warnung. Die folgenden Änderungen überschreiben die Remote-Änderungen mit den im Git-Repo enthaltenen Informationen.

ssh my_site@1.2.3.4 -p PORT "cd /www/MY_SITE/public && git fetch https://TOKEN@github.com/USER/REPO.git && git reset –hard kinsta/mysite"

Wenn du Fragen zur Verwendung von Git bei Kinsta hast, hilft dir unsere Support-Abteilung nach der Inbetriebnahme gerne weiter.

Wie man mit GitLab CI/CD automatisch auf Kinsta deployed (fortgeschritten)

Für fortgeschrittene Benutzer kann GitLab CI/CD (Continuous Integration/Continuous Delivery) verwendet werden, um automatisch Code-Änderungen an deiner Kinsta-Webseite vorzunehmen, sobald ein neuer Commit in den entsprechenden Zweig gepusht wird. Diese Methode erlaubt es dir, programmierten Code kontinuierlich in deine Live-Umgebung auf Kinsta zu pushen, ohne die MySQL-Datenbank von WordPress zu überschreiben.

Erstelle eine Kinsta Seite (Optional)

Für die Zwecke dieses Tutorials werden wir eine neue leere Webseite auf Kinsta erstellen und später WordPress installieren. Wenn du bereits eine Webseite auf Kinsta hast, kannst du diesem Tutorial trotzdem folgen.

Gehe in MyKinsta auf deine „Seiten“-Seite und klicke oben rechts auf „Seite hinzufügen„. Wähle die Option „WordPress nicht installieren“, gib deiner Webseite einen Namen, wähle einen Ort aus und klicke auf die Schaltfläche „Seite hinzufügen„, um den Erstellungsprozess der Webseite abzuschließen.

Erstelle eine leere Seite in MyKinsta.

Erstelle eine leere Seite in MyKinsta.

Erstelle ein GitLab Projekt

Um anzufangen, gehe zu GitLab und klicke auf Create a Project, um ein neues Repository für deine Kinsta Webseite zu erstellen.

Erstelle ein Projekt in GitLab.

Erstelle ein Projekt in GitLab.

Wähle die Option „Blank Project“ und fülle die Felder „Project Name“ und „Project Slug“ aus.

Erstelle ein leeres Projekt in GitLab.

Erstelle ein leeres Projekt in GitLab.

Für die Option „Visibility Level“ empfehlen wir, das Repository privat zu machen. Da dieses Repository Premium-Plugin- und Theme-Code enthalten kann, würde es, wenn es über das öffentliche Internet zugänglich wäre, jedem ermöglichen, die Produkte herunterzuladen, für die du bezahlt hast.

Sobald du mit der Konfiguration des neuen Projekts fertig bist, klicke auf „Create Project„, um fortzufahren.

Konfiguriere die SSH Keys

Als nächstes musst du SSH-Schlüssel zu GitLab und MyKinsta hinzufügen, damit die beiden Plattformen miteinander kommunizieren können. Fangen wir damit an, einen SSH-Schlüssel in GitLab hinzuzufügen.

Öffentlichen SSH-Schlüssel zu GitLab hinzufügen

Als erstes musst du SSH in deine Kinsta-Live-Umgebung eingeben und den Befehl cat unten ausführen, um deinen öffentlichen SSH-Schlüssel anzuzeigen.

cat ~/.ssh/id_rsa.pub

Dein öffentlicher Schlüssel sollte ähnlich wie der untenstehende aussehen. Lass dein Terminalfenster vorerst offen und gehe zurück zu GitLab in deinem Webbrowser.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7zdjwd6UIUJ5t4YnXNi6yhdHgrvIV2xgjvJ3592wd1Hzmnta4dau7yOIxQDU7/oNIr6DIskuIUii5ruGi4YZpIwB/AWGrn/uWb+FXJFiQHMZq9rCFcqtZXT0fyzKiSNkblV4F1RaPQJRvxfSUsSQ3jJU3FX8CF1c4R40CiBKkSHM8uavVIIESzgIHRiWVxkL9F6SKzg8GeTctJaAa3W+q1F1T60OKYmzH3OLdA37ZNmkm1CYWa8SF0JjOszxOnPwhfQ49P5r+rftXRFLz/7hGJ8CnUyzErSiUdUKNknUAB+w4KEZshQSNuiken0+GKqIw83dWWSyjiJJigcyDez2s+3AqDLHPG45NoBEXuBXjPQ9C08hokVyKlbzd/P2qvcnzUT5S6zTuaYOW+50+fiXeYkJlEoYYxoGRVx6FFdFqWyJx5UyaDv7QY3iQH0qct1iq9XGXMhBxIecIAEPUwF8nOp15in8L+5UIFMiNnihztTAXysc+8xvVwbuRlQIeR/E= ansible-generated on fvj-kinstagit

Klicke auf das Benutzersymbol in der oberen rechten Ecke von GitLab und klicke auf Settings.

Gehe zur Seite mit den GitLab-Einstellungen.

Gehe zur Seite mit den GitLab-Einstellungen.

Klicke auf der „Settings“-Seite in der Sidebar auf SSH-Schlüssel.

SSH Keys in GitLab.

SSH Keys in GitLab.

Füge deinen öffentlichen SSH-Schlüssel in das Textfeld ein. Das Titelfeld sollte automatisch mit einem Namen gefüllt werden, aber du kannst ihn gerne ändern, wenn du möchtest. GitLab erlaubt es dir auch, ein Ablaufdatum für den SSH-Schlüssel festzulegen. Diese Option ist nützlich, wenn du SSH-Schlüssel als Teil des Sicherheitsprotokolls deiner Infrastruktur ungültig machst und rotieren lässt. Wenn du das nicht tust, kannst du das „Expires At“-Feld leer lassen.

Füge deinen SSH-Schlüssel in GitLab hinzu.

Füge deinen SSH-Schlüssel in GitLab hinzu.

Nachdem du deine Konfiguration überprüft hast, klicke auf Schlüssel hinzufügen, um den Vorgang abzuschließen.

Öffentlichen SSH-Schlüssel zu MyKinsta hinzufügen

Jetzt, wo dein öffentlicher SSH-Schlüssel bei GitLab ist, musst du denselben Schlüssel zu MyKinsta hinzufügen. In MyKinsta klickst du auf dein Benutzersymbol in der linken unteren Ecke und klickst auf Benutzereinstellungen. Dieser Schritt fügt den öffentlichen Kinsta-Schlüssel zur authorized_keys-Datei deiner Webseite hinzu (nur für Root und MyKinsta beschreibbar) und erlaubt GitLab, SSH in deine Webseite einzufügen, um Code-Änderungen vorzunehmen.

Benutzereinstellungen in MyKinsta.

Benutzereinstellungen in MyKinsta.

Scrolle nach unten und klicke auf SSH-Schlüssel hinzufügen.

SSH-Schlüssel in MyKinsta hinzufügen.

SSH-Schlüssel in MyKinsta hinzufügen.

Gib im Modalfenster einen Namen für den SSH-Schlüssel an, füge deinen öffentlichen Schlüssel in das Textfeld ein und klicke auf SSH-Schlüssel hinzufügen, um den Vorgang abzuschließen.

Füge deinen SSH-Schlüssel in MyKinsta hinzu.

Füge deinen SSH-Schlüssel in MyKinsta hinzu.

Füge deinen SSH Private Key zu GitLab hinzu

Als nächstes musst du den privaten SSH-Schlüssel deiner Kinsta-Live-Umgebung als Umgebungsvariable in GitLab hinzufügen. Der private Schlüssel erlaubt es GitLab, SSH in deine Kinsta Webseite einzufügen, um Codeänderungen direkt zu übernehmen.

Um deinen privaten Schlüssel zu finden, führe den Terminal-Befehl unten in deiner Kinsta-Live-Umgebung aus. Stelle sicher, dass du deinen privaten SSH-Schlüssel nirgendwo außerhalb von GitLab teilst.

cat ~/.ssh/id_rsa

Klicke in GitLab auf das Projekt, das du zuvor erstellt hast. In der Sidebar gehst du mit der Maus über „Settings“ und klickst auf CI/CD.

GitLab-Repository CI/CD-Einstellungen.

GitLab-Repository CI/CD-Einstellungen.

Scrolle nach unten zum Abschnitt „Variables“, klicke auf die Schaltfläche „Expand“ und dann auf „Add Variable„. Benutze SSH_PRIVATE_KEY für den Schlüsselnamen, füge deinen privaten Schlüssel in das Textfeld ein und klicke auf „Add Variable„, um fortzufahren.

Important

Vergewissere dich, dass du deinen privaten SSH-Schlüssel hinzufügst. Er sollte mit -----BEGIN OPENSSH PRIVATE KEY----- beginnen.

Nachdem die Variable hinzugefügt wurde, kannst du sie in deinen Repository-Einstellungen sehen.

SSH private Schlüsselvariable in GitLab.

SSH private Schlüsselvariable in GitLab.

GitLab Repo für MyKinsta klonen

Nun, da die notwendigen SSH-Schlüssel hinzugefügt wurden, kannst du dein GitLab-Repository in deine Kinsta-Live-Umgebung klonen. Navigiere in GitLab zu deinem Repository, klicke auf den blauen Klon-Button und kopiere die URL unter „Clone with SSH“.

Klonen mit SSH in GitLab.

Klonen mit SSH in GitLab.

Als nächstes gehe mit SSH in deine Kinsta-Live-Umgebung und navigiere zu deinem Home-Verzeichnis. Wenn du dir nicht sicher bist, wie du zu deinem Home-Verzeichnis kommst, benutze den Befehl unten.

cd ~/

Sobald du im Home-Verzeichnis bist, führe den Befehl git clone mit der URL aus, die du von GitLab kopiert hast.

git clone [your-repository-url-here]

Nachdem du das Repository geklont hast, wirst du eine Warnung sehen, die besagt: „Du scheinst ein leeres Repository geklont zu haben“. Dies ist zu erwarten, da das Repository im Moment leer ist.

Klone dein GitLab-Repository in deine Kinsta-Live-Umgebung.

Klone dein GitLab-Repository in deine Kinsta-Live-Umgebung.

Bei Kinsta liefert unsere Nginx-Konfiguration Inhalte aus dem Ordner ~/public. Ihr solltet also den aktuellen Ordner ~/public löschen und euren geklonten Repo-Ordner in ~/public umbenennen. Um dies zu tun, führe die beiden folgenden Befehle aus.

rm -rf ~/public
mv ~/your-repo-folder-name ~/public

Konfiguriere GitLab Repo

Benutze als nächstes den Befehl unten, um zum Ordner ~/public zu navigieren.

cd ~/public

Führe die beiden folgenden Befehle aus, um dein GitLab-Repo zu konfigurieren. Achte darauf, dass du eine gültige E-Mail-Adresse und einen Benutzernamen deiner Wahl angibst.

git config --global user.email "youremail@address.com"
git config --global user.name "brian"

Installiere WordPress mit WP-CLI

Nachdem das GitLab-Repo nun in deine Kinsta-Live-Umgebung geklont und konfiguriert wurde, lass uns WordPress installieren. Du kannst WordPress entweder manuell installieren, indem du es von wordpress.org herunterlädst, oder du kannst es mit WP-CLI installieren. Für dieses Beispiel werden wir WP-CLI verwenden, um WordPress mit dem unten stehenden Befehl im Ordner ~/public zu installieren.

Haben Sie mit Ausfallzeiten und WordPress-Problemen zu kämpfen? Kinsta ist die Hosting-Lösung, die Ihnen Zeit spart! Sieh dir unsere Features an
wp core download

Nachdem du WordPress installiert hast, sollte dein ~/public-Ordner so aussehen.

Eine neue WordPress-Installation mit WP-CLI.

Eine neue WordPress-Installation mit WP-CLI.

Als nächstes gehst du auf die „Domains“-Seite in MyKinsta für deine Webseite und besuchst deine „Hauptdomain“.

Besuche deine Hauptdomain, um WordPress zu konfigurieren.

Besuche deine Hauptdomain, um WordPress zu konfigurieren

Ihr werdet mit dem fünfminütigen Installationsprozess von WordPress begrüßt. Wenn du dir nicht sicher bist, wie man WordPress einrichtet, haben wir hier eine ausführliche Anleitung.

Konfiguriere die neue Installation von WordPress.

Konfiguriere die neue Installation von WordPress.

Nachdem WordPress installiert wurde, solltest du deine neue Webseite von WordPress sehen können, indem du deine Hauptdomain besuchst.

Eine neue WordPress installation.

Eine neue WordPress installation.

Konfiguriere die GitLab CI/CD-Pipeline

Als nächstes musst du eine spezielle Konfigurationsdatei einrichten, um GitLab anzuweisen, automatische Einsätze zu initiieren, nachdem die Mastermarke des Repos aktualisiert wurde. Um dies zu tun, navigiere zum Ordner ~/public in deiner Kinsta-Live-Umgebung und erstelle eine neue Datei namens .gitlab-ci.yml mit dem folgenden Befehl.

cd ~/public && touch .gitlab-ci.yml

Nachdem die Datei erstellt wurde, füge den folgenden Text in die Datei ein. Du kannst die Datei entweder mit nano oder vim im Terminal editieren, oder mit einem SFTP Editor. Wenn du einen SFTP-Client benutzt, stelle sicher, dass du versteckte Dateien aktivierst, um die .gitlab-ci.yml-Datei zu sehen.

before_script:
    - apt-get update -qq
    - apt-get install -qq git
    # Setup SSH deploy keys
    - 'which ssh-agent || ( apt-get install -qq openssh-client )'
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - mkdir -p ~/.ssh- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
deploy_live:
    type: deploy
    environment:
        name: Live
        url: your-primary-domain
    script:
        - ssh user@ip-address -p port-number "cd public-root && git checkout master && git pull origin master && exit"
    only:
        - master

Stelle sicher, dass du die url und script Parameter im deploy_live Block änderst. Du wirst die fettgedruckten Werte mit den Einstellungen deiner Webseite aus dem MyKinsta Dashboard ersetzen wollen.

Öffentlicher Pfad und SSH-Details in MyKinsta.

Öffentlicher Pfad und SSH-Details in MyKinsta.

Der only: - master -Abschnitt der Datei bezieht sich auf den Repository-Zweig, der GitLab’s CI/CD-Prozess auslösen wird. Mit dieser Konfiguration werden Pushs zum master branch einen Deployment in deiner Kinsta-Liveumgebung auslösen. Wenn du einen anderen Branch angeben möchtest, um den Deployment auszulösen, kannst du die Konfiguration ändern.

Wenn du zusätzliche Granularität in die Konfiguration implementieren möchtest, um eine Staging-Umgebung zu berücksichtigen, kannst du einen zusätzlichen deploy_staging-Block mit der URL und den SSH-Details für deine Kinsta-Staging-Umgebung hinzufügen.

deploy_staging:
    type: deploy
    environment:
        name: Staging
        url: your-staging-domain
    script:
        - ssh user@ip-address -p port-number "cd public-root && git checkout master && git pull origin staging && exit"
    only:
        - staging

Beachte: – auch die Staging-Sektion – das bedeutet, dass Pushs zum staging-Branch den CI/CD-Prozess von GitLab einleiten.

Initialer Commit to GitLab

Nun, da WordPress und die GitLab-Konfigurationsdatei eingerichtet sind, lasst uns einen ersten Commit zu GitLab machen. Um dies zu tun, erstellen wir einen neuen Branch namens v0.1, beginnen die Dateien im Repo zu verfolgen, committen die Änderungen und schieben die Änderungen in GitLab auf den v0.1 Branch. Führe die unten stehenden Befehle von ~/public aus, um den ersten Commit auszulösen.

git checkout -b v0.1
git add .
git commit -a -m 'Initial Commit'
git push origin v0.1

Wenn ihr euer Repository in GitLab überprüft, seht ihr nun die Dateien eures ersten Commits.

Initialer Commit an GitLab.

Initialer Commit an GitLab.

Kinsta Staging-Umgebung konfigurieren

Der nächste Schritt ist die Konfiguration einer Kinsta Staging-Umgebung, damit du einen sicheren Ort hast, um neue Plugins, Themes und Code auszuprobieren, ohne deine Produktionsumgebung zu beeinträchtigen. Um dies zu tun, erstelle zuerst eine Staging-Umgebung in MyKinsta.

Schaffe eine Staging-Umgebung in MyKinsta.

Schaffe eine Staging-Umgebung in MyKinsta.

Gehe via SSH in die Staging-Umgebung und führe den folgenden Befehl aus, um nach Code-Änderungen zu suchen.

cd ~/public && git status

Du solltest eine Nachricht wie die untenstehende sehen. Wie du sehen kannst, ist der Zweig der v0.1 Zweig, der früher erstellt wurde. Außerdem hat sich die wp-config.php Datei geändert. Dies geschieht, weil Kinsta während des Pushs von Live zu Staging ein paar zusätzliche Zeilen zur wp-config.php hinzufügt.

Geänderte Dateien in der Staging-Umgebung von Kinsta.

Geänderte Dateien in der Staging-Umgebung von Kinsta.

Commit und schiebe die Änderungen Live

Zum Schluss wollen wir noch ein paar Änderungen an der Staging-Umgebung vornehmen und einen neuen Commit in der Kinsta-Live-Umgebung mit GitLab vorantreiben. Denkt daran, dass der Zweck dieser Methode ist, Kinsta’s normales „push to live“ Feature zu umgehen, welches auch die WordPress Datenbank überschreibt.

Für dieses Beispiel installieren wir das Yoast SEO-Plugin unter Verwendung von WP-CLI mit dem folgenden Befehl.

cd ~/public && wp plugin install wordpress-seo

Nachdem das Yoast SEO-Plugin installiert wurde, führe die folgenden Befehle aus, um einen Commit zu machen und die Änderungen in den v0.1-Zweig zu übertragen.

git add .
git commit -a -m ‘Installed Yoast SEO plugin.’
git push origin v0.1

Lasst uns schließlich zum master-Zweig wechseln, v0.1 zum master zusammenführen und den master mit den Befehlen unten zu GitLab schieben. Dies wird GitLab dazu veranlassen, einen Deployment-Prozess in deiner Kinsta-Live-Umgebung einzuleiten, und zwar wegen der only: - master-Einstellung in der GitLab-Konfigurationsdatei.

git checkout master
git merge v0.1
git push origin master

Gehe in GitLab auf CI/CD > Jobs in der Sidebar deines Repos, und du wirst sehen, wie der Job läuft. Dieser „Job“ ist GitLab, das das Yoast SEO-Plugin in deine Kinsta-Live-Umgebung schiebt.

Aktiver Job in GitLab.

Aktiver Job in GitLab.

Nachdem der Job erledigt ist, starte die wp-Plugin liste in deiner Kinsta-Live-Umgebung. Du solltest wordpress-seo sehen – das Yoast SEO-Plugin, das zuvor in der Staging-Umgebung installiert wurde.

 Das Yoast SEO Plugin wurde via GitLab deployed.

Das Yoast SEO Plugin wurde via GitLab deployed.

Wenn du ein Theme- oder Plugin-Entwickler bist, der mit Kinsta-Webseiten arbeitet, kann das Einrichten von Auto-Deploys über GitLab CI/CD deinen Workflow beschleunigen. Mit dieser Einrichtung kannst du Code entweder von deiner lokalen Umgebung oder von der Kinsta Staging-Website aus programmieren, ohne die MySQL-Datenbank auf deiner Live-Produktionswebsite überschreiben zu müssen.


Wenn dir dieses Tutorial gefallen hat, dann wirst du unseren Support lieben. Alle Hosting-Pläne von Kinsta beinhalten einen 24/7-Support durch unsere erfahrenen WordPress-Entwickler und -Ingenieure. Chatte mit dem gleichen Team, das unsere Fortune-500-Kunden unterstützt. Schau Dir hier unsere Pakete an