For de mere avancerede brugere kan GitLab CI/CD (kontinuerlig integration/kontinuerlig levering eller kontinuerlig implementering) automatisk implementere kodeændringer til dit Kinsta-websted, hver gang en ny commit skubbes til den relevante filial. Denne metode giver dig mulighed for løbende at skubbe kode til dit live-miljø på Kinsta uden at overskrive WordPress MySQL-databasen.
Denne opsætning giver dig mulighed for at skubbe kode fra dit lokale miljø eller Kinsta-indstillingsmiljø og have et version control system. I eksemplet nedenfor opsætter vi et scenemiljø og skubber ændringer til det miljø til vores live-miljø via GitLab (omgå Kinstas Skub til Live-funktion).
Hvis du ikke allerede har en GitLab-konto, kan du besøge deres tilmeldingsside for at komme i gang.
Opret et Kinsta-websted
Til denne tutorial starter vi med at oprette et nyt tomt WordPress-websted på Kinsta, og vi installerer WordPress senere. Hvis du allerede har et Kinsta-websted, kan du stadig følge trinene i denne vejledning for at forbinde dit websted til GitLab.
Gå til din WordPress-side i MyKinsta. Klik på knappen Tilføj websted i øverste højre hjørne, og vælg Opret nyt websted i rullemenuen. Vælg indstillingen Installer ikke WordPress i modal-/pop-up-vinduet, og klik på knappen Fortsæt.
Udfyld de anmodede felter, klik på Fortsæt-knappen for at komme videre til hvert vindue, og afslut processen med at oprette webstedet.

Opret et GitLab-projekt
For at komme i gang skal du gå over til GitLab og klikke på Opret et projekt for at oprette et nyt lager til dit Kinsta-websted.

Vælg indstillingen Blank Project, og udfyld felterne Project name og Project slug .

For indstillingen Visibility Level anbefaler vi at gøre depotet privat. Da dette lager kan indeholde premium plugin og temakode, vil det give enhver mulighed for at downloade de produkter, du har betalt for, ved at lade det være tilgængeligt over det offentlige internet.
Når du er færdig med at konfigurere det nye projekt, skal du klikke på Create project for at fortsætte.
Konfigurer SSH-nøgler
Dernæst skal du tilføje SSH-nøgler til GitLab og MyKinsta for at tillade de to platforme at kommunikere.
Tilføj SSH Public Key til GitLab
Først skal du SSH ind dig i dit Kinsta-websteds live-miljø og kør cat
-command nedenfor for at vise din offentlige SSH-nøgle.
cat ~/.ssh/id_rsa.pub
Din offentlige nøgle skal ligne den nedenfor. Hold dit kommandolinje vindue åbent indtil videre, og gå tilbage til GitLab i din 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
Klik på rullemenuen brugerikon i øverste højre hjørne af GitLab, og klik på Settings.

På siden Settings skal du klikke på SSH Keys i sidebar.

Indsæt din offentlige SSH-nøgle i Key-feltet. Title-feltet skal automatisk udfyldes med et navn, men du er velkommen til at ændre det, hvis du vil. GitLab giver dig også mulighed for at indstille en udløbsdato for SSH-nøglen. Denne mulighed er nyttig, hvis du ugyldiggør og roterer SSH-nøgler som en del af din infrastruktur sikkerhedsprotokol. Hvis du ikke gør det, er du velkommen til at lade feltet Expires at stå tomt.

Når du har dobbelttjekket din konfiguration, skal du klikke på Add key for at afslutte processen.
Tilføj SSH Public Key til MyKinsta
Nu hvor din offentlige SSH-nøgle er blevet tilføjet til GitLab, skal du tilføje den samme nøgle til MyKinsta. Dette trin tilføjer din offentlige SSH-nøgle til dit websteds authorized_keys-fil (kun skrivbar af root og MyKinsta) og vil tillade GitLab at SSH ind på dit websted for at implementere kodeændringer. I MyKinsta skal du klikke på dit navn i øverste højre hjørne og vælge Brugerindstillinger fra rullemenuen.

Rul ned og klik på knappen Tilføj SSH-nøgle.

I det modale/pop-up-vindue skal du angive en Label (navn) for SSH-nøglen, indsætte din offentlige nøgle i SSH key feltet og klikke på Add SSH key for at afslutte processen.

Tilføj SSH Private Key til GitLab
Dernæst skal du tilføje den private SSH-nøgle fra dit websteds live-miljø som en miljøvariabel i GitLab.
For at finde din private nøgle, skift tilbage til dit kommandolinje vindue og kør kommandoen nedenfor. Sørg for ikke at dele din SSH private key nogen steder uden for GitLab.
cat ~/.ssh/id_rsa
I GitLab skal du klikke på det projekt, du oprettede tidligere. I sidebar skal du holde markøren over Settings og klikke på CI/CD i menuen, der vises.

Rul ned til sektionen Variables, klik på knappen Expand, og klik på Add variable. Brug SSH_PRIVATE_KEY
til key navnet, indsæt din private nøgle i Value feltet, og klik på knappen Add variable for at fortsætte.
Efter at variablen er blevet tilføjet, vil du kunne se den i dine lagerindstillinger.

Klon GitLab Repo til MyKinsta
Nu hvor de nødvendige SSH-nøgler er blevet tilføjet, kan du klone dit GitLab-lager til dit Kinsta live-miljø. I GitLab skal du navigere til dit lager, klikke på den blå Clone-knap og klikke på kopi-/udklipsholderikonet for at kopiere lageradressen under Clone with SSH.

Skift tilbage til dit kommandolinjevindue og naviger til dit livemiljøs hjemmemappe. Hvis du er usikker på, hvordan du kommer til din hjemmemappe, skal du bruge kommandoen nedenfor.
cd ~/
Når du er i hjemmemappen, skal du køre git clone
-kommandoen med den depotadresse, du kopierede fra GitLab.
git clone [your-repository-url-here]
Efter kloning af depotet, vil du se en advarsel, der siger “you appear to have cloned an empty repository.” Dette kan forventes, fordi repoen i øjeblikket er tom.

Hos Kinsta serverer vores Nginx-konfiguration indhold fra ~/public-mappen. Derfor skal du slette den aktuelle ~/public-mappe og omdøbe din klonede repo-mappe til ~/public. For at gøre dette skal du køre de to kommandoer nedenfor.
rm -rf ~/public
mv ~/your-repo-folder-name ~/public
Konfigurer GitLab Repo
Brug derefter kommandoen nedenfor til at navigere til mappen ~/public.
cd ~/public
Kør de to kommandoer nedenfor for at konfigurere din GitLab-repo. Sørg for at angive din gyldige e-mailadresse og et brugernavn tilknyttet din GitLab-konto.
git config --global user.email "[email protected]"
git config --global user.name "brian"
Installer WordPress med WP-CLI
Nu hvor GitLab-repoen er blevet klonet til dit Kinsta live-miljø og konfigureret, lad os installere WordPress. Du kan installere WordPress manuelt ved at downloade det fra wordpress.org, eller du kan installere det med WP-CLI. I dette eksempel bruger vi WP-CLI til at installere WordPress med kommandoen nedenfor i ~/public-mappen.
wp core download
Efter installation af WordPress skal din ~/public mappe se sådan ud:

Gå derefter til dit websteds domæner-side i MyKinsta og klik på linket Åbn URL for at besøge dit primære domæne.

Du vil blive mødt med WordPress fem-minutters installationsprocessen. Hvis du er i tvivl om opsætning af WordPress, har vi en dybdegående guide her.

Efter at WordPress er blevet installeret, bør du kunne se dit nye WordPress-websted ved at besøge dit primære domæne.

Konfigurer GitLab CI/CD Pipeline
Dernæst skal du opsætte en konfigurationsfil for at instruere GitLab om at starte automatiske implementeringer, efter at repoens hovedgren er blevet opdateret. For at gøre dette skal du sørge for, at du er i mappen ~/public i dit Kinsta-livemiljø (run cd ~/public
for at navigere dertil, hvis det er nødvendigt) og opret en ny fil kaldet .gitlab-ci.yml med kommandoen nedenfor.
touch .gitlab-ci.yml
Når filen er oprettet, skal du tilføje følgende tekst til filen. Du kan enten redigere filen med nano eller vim på kommandolinjen eller med SFTP og en tekst- eller kodeeditor. Hvis du bruger en SFTP-klient, skal du sørge for at aktivere skjulte filer for at se filen .gitlab-ci.yml.
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'
- ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
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
Skift url
– og script
-parametrene i deploy_live
-blokken; erstatte de fede værdier med dit websteds detaljer fra MyKinsta.
- Erstat dit-primære-domæne med dit websteds primære domæne.
- Erstat ssh user@ip-adresse -p port-number med SSH-terminal command i MyKinsta (WordPress-websteder > navn på websted > Info > SFTP/SSH).
- Erstat public-root med stien i MyKinsta (WordPress-websteder >navn på websted > Info > Detaljer om miljøet).

Den only: - main
afsnit af filen refererer til depotgrenen, der vil udløse GitLabs CI/CD-proces. Med denne konfiguration vil push til main grenen starte en implementering til dit Kinsta live-miljø. Hvis du ønsker at angive en anden gren til at udløse implementering, er du velkommen til at ændre konfigurationen.
Hvis du gerne vil implementere yderligere granularitet til konfigurationen for at tage højde for et iscenesættelsesmiljø, kan du tilføje en ekstra deploy_staging
-blok med URL- og SSH-detaljerne til dit Kinsta-scenemiljø.
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
Bemærk den only: - staging
scene-sektion – dette betyder, at skubbe til staging
grenen vil starte GitLabs CI/CD-proces. Du kan justere dette efter behov for at implementere fra den gren, du vælger.
Indledende forpligtelse til GitLab
Nu hvor WordPress og GitLab-konfigurationsfilen er sat op, lad os tage en indledende forpligtelse til GitLab. Vi opretter en ny gren kaldet v0.1, begynder at spore filerne i repoen, begår ændringerne og skubber ændringerne til GitLab på v0.1-grenen. Kør kommandoerne nedenfor fra ~/public for at udløse den indledende commit.
git checkout -b v0.1
git add .
git commit -a -m 'Initial Commit'
git push origin v0.1
Hvis du tjekker dit lager i GitLab, vil du nu se filerne fra din indledende commit.

Konfigurer et Kinsta Scenemiljø
Det næste trin er at oprette og konfigurere et scenemiljø i MyKinsta, så du har et sikkert sted at teste nye plugins, temaer og kode uden at påvirke dit live/produktionsmiljø.

Efter at have oprettet dit websteds scenemiljø, SSH ind i scenemiljøet i et nyt kommandolinjevindue (hold det separate vindue for dit live-miljø åbent) og kør kommandoen nedenfor for at kontrollere, om der er kodeændringer.
cd ~/public && git status
Du bør se en besked som den nedenfor. Som du kan se, er grenen den v0.1, der blev oprettet tidligere. Derudover er filen wp-config.php ændret. Dette sker, fordi Kinsta tilføjer et par ekstra linjer til wp-config.php, når de opretter scenemiljøet.

Forpligt og implementer ændringer til Live
Lad os endelig lave nogle ændringer i scenemiljøet og skubbe en ny forpligtelse til Kinsta live-miljøet ved hjælp af GitLab. Husk, at denne metode vil omgå Kinstas Skub til Live-funktion.
For dette eksempel, lad os installere Yoast SEO plugin ved hjælp af WP-CLI med kommandoen nedenfor.
wp plugin install wordpress-seo
Efter Yoast SEO-plugin’et er blevet installeret, skal du køre kommandoerne nedenfor for at foretage en commit og skubbe ændringerne til v0.1-grenen.
git add .
git commit -a -m ‘Installed Yoast SEO plugin.’
git push origin v0.1
Lad os endelig skifte til main grenen, flette v0.1 til main og skubbe main til GitLab med kommandoerne nedenfor. Dette vil få GitLab til at starte en implementeringsproces til dit Kinsta live-miljø på grund af den only: - main
indstilling i GitLab-konfigurationsfilen.
git checkout main
git merge v0.1
git push origin main
I GitLab skal du gå til CI/CD > Jobs i din repo’s sidebar, og du vil se jobbet køre. Dette job er GitLab, der implementerer Yoast SEO-plugin til dit Kinsta live-miljø.

Når jobbet er færdigt, skal du skifte tilbage til kommandolinje vinduet for dit live-miljø og køre wp-plugin-list
i det vindue. Du bør se wordpress-seo
på listen. Dette er Yoast SEO-plugin, der blev installeret på scenemiljøet tidligere.

Hvis du er en tema- eller plugin-udvikler, der arbejder med Kinsta-websteder, kan opsætning af automatiske implementeringer via GitLab CI/CD hjælpe med at fremskynde din arbejdsgang og samtidig give version ontrol.