För mer avancerade användare kan GitLab CI/CD (kontinuerlig integrering/kontinuerlig leverans eller kontinuerlig distribution) automatiskt distribuera kodändringar till din Kinsta-webbplats när ett nytt genomförande skickas till relevant gren. Med den här metoden kan du skicka kod kontinuerligt till din livemiljö på Kinsta utan att skriva över WordPress MySQL-databasen.
Med den här konfigurationen kan du skicka kod från din lokala miljö eller din iscensättningsmiljö på Kinsta och ha ett versionskontrollsystem. I exemplet nedan ställer vi in en iscensättningsmiljö och skickar ändringar i den miljön till vår livemiljö via GitLab (detta kringgår Kinsta’s Omvandla till Live-funktion).
Om du inte redan har ett GitLab-konto besöker du deras registreringssida för att komma igång.
Skapa en Kinsta-webbplats
För den här handledningen börjar vi med att skapa en ny tom webbplats på Kinsta, vi installerar WordPress senare. Om du redan har en Kinsta WordPress-webbplats kan du ändå följa stegen i den här självstudien för att ansluta din webbplats till GitLab.
I MyKinsta går du till sidan WordPress-webbplatser. Klicka på knappen Lägg till webbplats i det övre högra hörnet och välj Skapa ny webbplats från rullgardinsmenyn. Välj alternativet Installera inte WordPress i modal/ popup-fönstret och klicka på knappen Fortsätt.
Fyll i de begärda fälten, klicka på knappen Fortsätt för att gå vidare till varje fönster och slutför processen för att skapa webbplatsen.

Skapa ett GitLab-projekt
För att komma igång, gå till GitLab och klicka på Skapa ett projekt för att skapa en ny lagringsplats för din Kinsta-webbplats.

Välj alternativet Tomt projekt och fyll i fälten Projektnamn och Projekt-slug.

När det gäller alternativet Synlighetsnivå rekommenderar vi att du gör lagringsplatsen privat. Eftersom det här förvaret kan innehålla premium-plugins och temakod, kan det vara möjligt för vem som helst att ladda ner de produkter som du har betalat för om du har förvaret tillgängligt via offentligt Internet.
När du är klar med att konfigurera det nya projektet klickar du på Skapa projekt för att fortsätta.
Konfigurera SSH-nycklar
Därefter måste du lägga till SSH-nycklar till GitLab och MyKinsta så att de två plattformarna kan kommunicera.
Lägga till offentlig SSH-nyckel i GitLab
Allra först, SSH in i kinsta-webbplatsens livemiljö. Kör cat
-kommandot nedan för att visa din offentliga SSH-nyckel.
cat ~/.ssh/id_rsa.pub
Din offentliga nyckel bör se ut ungefär som den nedan. Håll kommandoradsfönstret öppet för tillfället och gå tillbaka till GitLab i din webbläsare.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7zdjwd6UIUJ5t4YnXNi6yhdHgrvIV2xgjvJ3592wd1Hzmnta4dau7yOIxQDU7/oNIr6DIskuIUii5ruGi4YZpIwB/AWGrn/uWb+FXJFiQHMZq9rCFcqtZXT0fyzKiSNkblV4F1RaPQJRvxfSUsSQ3jJU3FX8CF1c4R40CiBKkSHM8uavVIIESzgIHRiWVxkL9F6SKzg8GeTctJaAa3W+q1F1T60OKYmzH3OLdA37ZNmkm1CYWa8SF0JjOszxOnPwhfQ49P5r+rftXRFLz/7hGJ8CnUyzErSiUdUKNknUAB+w4KEZshQSNuiken0+GKqIw83dWWSyjiJJigcyDez2s+3AqDLHPG45NoBEXuBXjPQ9C08hokVyKlbzd/P2qvcnzUT5S6zTuaYOW+50+fiXeYkJlEoYYxoGRVx6FFdFqWyJx5UyaDv7QY3iQH0qct1iq9XGXMhBxIecIAEPUwF8nOp15in8L+5UIFMiNnihztTAXysc+8xvVwbuRlQIeR/E= ansible-generated on fvj-kinstagit
Klicka på användarikonens rullgardinsmeny i det övre högra hörnet av GitLab och klicka på Inställningar.

På sidan Inställningar klickar du på SSH-nycklar i sidofältet.

Klistra in din offentliga SSH-nyckel i fältet Nyckel. Fältet Titel ska fyllas i automatiskt med ett namn, men ändra det gärna om du vill. GitLab låter dig även ange ett utgångsdatum för SSH-nyckeln. Det här alternativet är användbart om du ogiltigförklarar och roterar SSH-nycklar som en del av ditt infrastruktursäkerhets-protokoll. Om du inte gör detta kan du lämna fältet Upphör att gälla tomt.

När du har dubbelkontrollat konfigurationen klickar du på Lägg till nyckel för att slutföra processen.
Lägg till offentlig SSH-nyckel i MyKinsta
Nu när din offentliga SSH-nyckel har lagts till i GitLab måste du lägga till samma nyckel i MyKinsta. Det här steget lägger till din offentliga SSH-nyckel i webbplatsens authorized_keys-fil (endast skrivbar av root och MyKinsta) och tillåter GitLab att SSH in i din webbplats för att distribuera kodändringar. I MyKinsta så klickar du på ditt namn i det övre högra hörnet och väljer Användarinställningar från rullgardinsmenyn.

Scrolla nedåt och klicka på knappen Lägg till SSH-nyckel.

I modal-/popup-fönstret anger du en etikett (namn) för SSH-nyckeln, klistrar in din offentliga nyckel i fältet SSH-nyckel och klickar på Lägg till SSH-nyckel för att slutföra processen.

Lägga till privat SSH-nyckel i GitLab
Efter detta måste du lägga till den privata SSH-nyckeln från webbplatsens livemiljö som en miljövariabel i GitLab.
För att hitta din privata nyckel, gå tillbaka till kommandoradsfönstret och kör kommandot nedan. Se till att inte dela din privata SSH-nyckel någonstans utanför GitLab.
cat ~/.ssh/id_rsa
I GitLab klickar du på det projekt som du skapade tidigare. Håll muspekaren över Inställningar i sidofältet och klicka på CI/CD i menyn som visas.

Scrolla ned till avsnittet Variabler, klicka på knappen Expandera och klicka på Lägg till variabel. Använd SSH_PRIVATE_KEY
som nyckel-namn, klistra in din privata nyckel i fältet Värde och klicka på knappen Lägg till variabel för att fortsätta.
När variabeln har lagts till så kan du se den i lagringsplatsens inställningar.

Klona GitLab-lagringsplatsen till MyKinsta
Nu när nödvändiga SSH-nycklar har lagts till kan du klona gitLab-lagringsplatsen till din Kinsta-livemiljö. I GitLab navigerar du till din lagringsplats, klickar på den blåa klonknappen och klickar på ikonen kopiera/klipp ut för att kopiera lagringsplatsens adress under Klona med SSH.

Byt tillbaka till kommandoradsfönstret och navigera till den aktiva miljöns hemkatalog. Om du är osäker på hur du kommer till din hemkatalog, använd kommandot nedan.
cd ~/
När du är i hemkatalogen kör du kommandot git clone
med lagringsplatsadressen som du kopierade från GitLab.
git clone [your-repository-url-here]
När du har klonat lagringsplatsen visas en varning som säger ”du verkar ha klonat ett tomt arkiv”. Detta är väntat eftersom lagringsplatsen är tom för tillfället.

På Kinsta serverar vår Nginx-konfiguration innehåll från ~/public-mappen. Av den anledningen måste du ta bort den aktuella ~/public-mappen och byta namn på den klonade lagringsplatsens mapp till ~/public. För att göra detta, kör de två kommandona nedan.
rm -rf ~/public
mv ~/your-repo-folder-name ~/public
Konfigurera GitLab-lagringsplatsen
Använd sedan kommandot nedan för att navigera till ~/public-mappen.
cd ~/public
Kör de två kommandona nedan för att konfigurera GitLab-lagringsplatsen. Se till att ange din giltiga e-postadress och ett användarnamn som är kopplat till ditt GitLab-konto.
git config --global user.email "[email protected]"
git config --global user.name "brian"
Installera WordPress med WP-CLI
Nu när GitLab-lagringsplatsen har klonats till din Kinsta-livemiljö och konfigurerats, låt oss installera WordPress. Du kan installera WordPress manuellt genom att ladda ner det från wordpress.org, eller installera det med WP-CLI. I det här exemplet använder vi WP-CLI för att installera WordPress med kommandot nedan i ~/public-mappen.
wp core download
När du har installerat WordPress bör din ~/public-mapp se ut så här:

Gå sedan till webbplatsens domänsida i MyKinsta och klicka på länken Öppna webbadress för att besöka din primära domän.

Du kommer att möta WordPress fem minuter långa installationsprocess. Om du är osäker på hur du konfigurerar WordPress har vi en djupgående guide här.

När WordPress har installerats bör du kunna se din nya WordPress-webbplats genom att besöka din primära domän.

Konfigurera GitLab CI/CD-pipeline
Efter detta måste du konfigurera en konfigurationsfil för att instruera GitLab att initiera automatiska distributioner när lagringsplatsens huvudgren har uppdaterats. Du gör detta genom att kontrollera att du är i ~/public-mappen i din Kinsta live-miljö (kör cd ~/public
för att navigera dit om det krävs) och skapa en ny fil med namnet .gitlab-ci.yml med kommandot nedan.
touch .gitlab-ci.yml
När filen har skapats lägger du till följande text i filen. Du kan antingen redigera filen med nano eller vim i kommandoraden eller med SFTP och en text- eller kodredigerare. Om du använder en SFTP-klient måste du aktivera dolda filer för att se .gitlab-ci.yml-filen.
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 none" > ~/.ssh/config'
deploy_live:
environment:
name: Live
url: your-primary-domain
script:
- ssh user@ip-address -p port-number "cd public-root && git checkout main && git pull origin main && exit"
only:
- main
Ändra url
och script
-parametrarna i deploy_live
-blocket; ersätt de fetstilta värdena med webbplatsens information från MyKinsta.
- Ersätt din primära domän med webbplatsens primära domän.
- Ersätt ssh user@ip-address -p port-number med SSH-terminalkommandot i MyKinsta (WordPress-webbplatser > webbplatsnamn > Info > Grundläggande detaljer).
- Ersätt public-root med sökvägen i MyKinsta (WordPress-webbplatser > webbplatsnamn > Info > SFTP/SSH).

only: - main
-sektionen av filen refererar till lagringsplatsgrenen som utlöser GitLabs CI/CD-processen. Med den här konfigurationen initierar omvandlingar till huvudgrenen en distribution till din Kinsta-livemiljö. Om du vill ange en annan gren som ska utlösa distributionen kan du ändra konfigurationen.
Om du vill ha en ännu mer ingående konfiguration för att ta hänsyn till en iscensättningsmiljö kan du lägga till ytterligare ett deploy_staging
-block med webbadress- och SSH-information för din iscensättningsmiljö på Kinsta.
deploy_staging:
environment:
name: Staging
url: your-staging-domain
script:
- ssh user@ip-address -p port-number "cd public-root && git checkout main && git pull origin staging && exit"
only:
- staging
Lägg även märke till only: - staging
– det betyder att omvandling till staging
-grenen kommer att initiera GitLabs CI/CD-processen. Du kan justera detta efter behov för att distribuera från den gren som du väljer.
Inledande åtaganden(commit) med GitLab
Nu när WordPress och GitLab-konfigurationsfilen har ställts in, låt oss göra ett första åtagande med GitLab. Vi skapar en ny gren med namnet v0.1, börjar spåra filerna i lagringsplatsen, genomför ändringarna och omvandlar ändringarna till GitLab på v0.1-grenen. Kör kommandona nedan från ~/public för att utlösa det första åtagandet.
git checkout -b v0.1
git add .
git commit -a -m 'Initial Commit'
git push origin v0.1
Om du kontrollerar lagringsplatsen i GitLab ser du nu filerna från ditt första åtagande.

Konfigurera iscensättningsmiljö hos Kinsta
Nästa steg är att skapa och konfigurera en iscensättningsmiljö i MyKinsta så att du har en säker plats där du kan testa nya plugins, teman och kod utan att påverka din live-/produktionsmiljö.

När du har skapat webbplatsens iscensättningsmiljö, SSH i iscensättningsmiljön i ett nytt kommandoradsfönster (håll det separata fönstret för din livemiljö öppet) och kör kommandot nedan för att kontrollera om det finns några kodändringar.
cd ~/public && git status
Du bör se ett meddelande i stil med det som du ser nedan. Som du kan se är grenen den v0.1 som skapades tidigare. Dessutom har wp-config.php-filen ändrats. Detta sker eftersom Kinsta lägger till några ytterligare rader i wp-config.php när du skapar iscensättningsmiljön.

Genomför och distribuera ändringar i Live
Låt oss slutligen göra några ändringar i iscensättningsmiljön och skicka ett nytt åtagande till Kinsta Live-miljön med GitLab. Tänk på att den här metoden kommer att kringgå Kinsta’s Omvandla till Live-funktion.
I det här exemplet, låt oss installera Yoast SEO-plugin med WP-CLI med kommandot nedan.
wp plugin install wordpress-seo
När Yoast SEO-pluginet har installerats kör du kommandona nedan för att göra ett åtagande och skicka ändringarna till v0.1-grenen.
git add .
git commit -a -m ‘Installed Yoast SEO plugin.’
git push origin v0.1
Slutligen, låt oss växla till huvudgrenen, slå samman v0.1 till main och skicka main till GitLab med kommandona nedan. Detta gör att GitLab initierar en distributionsprocess till din Kinsta-livemiljö på grund av only: - main
-inställningen i GitLab-konfigurationsfilen.
git checkout main
git merge v0.1
git push origin main
I GitLab går du till CI/CD > jobs i lagringsplatsens sidofält för att se att job körs. Detta job är GitLab som distribuerar Yoast SEO-pluginet till din Kinsta-livemiljö.

När job är klart växlar du tillbaka till kommandoradsfönstret för din livemiljö och kör wp plugin list
i det fönstret. Du bör se wordpress-seo
i listan. Detta är Yoast SEO-pluginet som tidigare installerades på iscensättningsmiljön.

Om du är en tema- eller plugin-utvecklare som arbetar med Kinsta-webbplatser kan du konfigurera automatisk distribution via GitLab CI/CD för att snabba upp arbetsflödet. Du tillhandahåller samtidigt en versionskontroll.