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 tomt websted i MyKinsta.
Opret et tomt websted i MyKinsta.

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.

Opret et projekt i GitLab.
Opret et projekt i GitLab.

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

Opret et tomt projekt i GitLab.
Opret et tomt projekt i GitLab.

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.

Gå til siden med GitLab-indstillinger.
Gå til siden med GitLab-indstillinger.

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

SSH-keys i GitLab.
SSH-keys i GitLab.

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.

Tilføj din SSH-nøgle i GitLab.
Tilføj din SSH-nøgle i GitLab.

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.

MyKinsta brugerindstillinger.
MyKinsta brugerindstillinger.

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

Tilføj SSH-nøgle i MyKinsta.
Tilføj SSH-nøgle i MyKinsta.

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 din SSH-nøgle i MyKinsta.
Tilføj din SSH-nøgle i MyKinsta.

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.

GitLab repository CI/CD-indstillinger.
GitLab repository CI/CD-indstillinger.

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.

SSH privat nøglevariabel i GitLab.
SSH privat nøglevariabel i GitLab.

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.

Clone with SSH i GitLab.
Clone with SSH i GitLab.

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.

Klon dit GitLab-lager til dit Kinsta live-miljø.
Klon dit GitLab-lager til dit Kinsta live-miljø.

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:

En frisk WordPress installation med WordPress kernefiler og mapper.
En frisk WordPress installation med WordPress kernefiler og mapper.

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.

Åbn URL-link i MyKinsta.
Åbn URL-link i MyKinsta.

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.

Konfigurer den nye installation af WordPress.
Konfigurer den nye installation af WordPress.

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

En ny WordPress installation.
En ny WordPress installation.

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).
Offentlig sti og SSH-detaljer i MyKinsta.
Offentlig sti og SSH-detaljer i MyKinsta.

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.

Indledende forpligtelse til GitLab.
Indledende forpligtelse til GitLab.

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ø.

Opret et nyt scenemiljø i MyKinsta.
Opret et nyt scenemiljø i MyKinsta.

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.

Ændrede filer i Kinsta scenemiljøet.
Ændrede filer i Kinsta 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ø.

Aktivt job i GitLab.
Aktivt job i GitLab.

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.

Yoast SEO plugin blev implementeret via GitLab.
Yoast SEO plugin blev implementeret via GitLab.

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.