Bitbucket Pipelines

Voor gevorderde gebruikers kan Bitbucket CI/CD (Continuous Integration/Continuous Delivery of Continuous Deployment) automatisch wijzigingen in de code uitrollen naar je Kinsta site zodra een nieuwe commit naar de aangewezen branch wordt gepushed. Deze opzet maakt het mogelijk om naadloos code uit te rollen vanuit je lokale omgeving via SSH en Bitbucket Pipelines, waardoor continue updates van je site mogelijk zijn.

Om deze stappen te volgen moet je een bestaande site hebben die gehost wordt op Kinsta en een Bitbucket account.

1. Een backup van je site downloaden

Je kunt een backup van je site downloaden om de Bitbucket repository in te stellen en er lokaal aan te werken. Je kunt ook DevKinsta gebruiken om je site van de Kinsta server te halen en er lokaal aan te werken.

Ga in MyKinsta naar WordPress sites > sitenaam > Back-ups > Downloaden > Nu backup maken.

Maak een downloadbare backup in MyKinsta.
Maak een downloadbare backup in MyKinsta.

Als je backup klaar is, klik je op Downloaden, sla je deze op je lokale computer op en pak je de bestanden uit in een map.

2. De Bitbucket repository instellen

Open de map met de bestanden van je site in de code editor van je voorkeur. Om het uploaden van onnodige WordPress core bestanden, media uploads of gevoelige informatie te voorkomen, voeg je een .gitignore bestand toe aan de hoofdmap van je project. Je kunt een standaard WordPress .gitignore template gebruiken, de inhoud ervan kopiëren en het opslaan om ervoor te zorgen dat alleen de essentiële bestanden worden gevolgd.

Ga in Bitbucket naar je werkruimte en maak een nieuwe repository aan. Zorg ervoor dat Include a README en Include .gitignore zijn ingesteld op No. Zodra de repository is aangemaakt, moet je ook pipelines inschakelen. Ga in de repository naar Settings en selecteer Enable Pipeline.

3. SSH-authenticatie instellen

Om veilig verbinding te maken met je Bitbucket repository, moet je SSH authenticatie instellen.

Maak een SSH sleutelpaar aan op je lokale machine met het volgende commando, waarbij je [email protected] vervangt door je e-mailadres:

ssh-keygen -t ed25519 -C "[email protected]"

Sla het sleutelpaar op een locatie op waar je gemakkelijk naar kunt verwijzen (bijvoorbeeld ~/.ssh/id_rsa_bitbucket).

Open en kopieer de openbare sleutel (~/.ssh/id_rsa_bitbucket.pub). Ga in Bitbucket naar Settings > Personal Bitbucket settings> SSH keys > Add key en plak de gegevens van de openbare sleutel. Dit machtigt je machine om veilig code te pushen.

Voeg de SSH-sleutel toe aan Bitbucket Instellingen.
Voeg de SSH-sleutel toe aan Bitbucket Instellingen.

Voeg dezelfde sleutel toe in MyKinsta, ga naar je gebruikersnaam > Gebruikersinstellingen > SSH sleutel toevoegen, plak dezelfde openbare sleutelgegevens en klik op SSH sleutel toevoegen.

4. Je code naar Bitbucket sturen

Open de map met de bestanden van je site in de code-editor van je voorkeur en gebruik de volgende commando’s om je code naar Bitbucket te pushen, waarbij je your-username en your-repo vervangt door je Bitbucket gebruikersnaam en de naam van het repository:

# 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 toegang tot Bitbucket instellen in MyKinsta

Om de Kinsta server code van Bitbucket te laten ophalen, moet je een SSH sleutel genereren op de server en de openbare sleutel ervan toevoegen aan je Bitbucket account.

Open een nieuwe terminal en SSH naar je Kinsta server met het SSH terminalcommando op de informatiepagina van je site in MyKinsta.

SSH-terminalcommando voor uw site.
SSH-terminalcommando voor uw site.

Voer het wachtwoord van je site in en genereer vervolgens een nieuwe SSH sleutel met het volgende commando, waarbij je [email protected] vervangt door je e-mailadres:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Druk op Enter om de sleutel op de standaardlocatie op te slaan en laat de wachtwoordzin leeg wanneer daarom wordt gevraagd.

Genereer een SSH-sleutel.
Genereer een SSH-sleutel.

6. De SSH sleutel toevoegen aan Bitbucket

Open de inhoud van het openbare sleutelbestand (bijvoorbeeld ~/.ssh/id_rsa.pub) met het volgende commando:

cat ~/.ssh/id_rsa.pub

Kopieer de volledige uitvoer en ga vervolgens in Bitbucket naar Settings > Personal Bitbucket settings > SSH key > Add key en voeg de openbare sleutel toe. Dit geeft de Kinsta-server toestemming om veilig toegang te krijgen tot je Bitbucket repository.

7. Git configureren om SSH te gebruiken op de Kinsta server

Kopieer in MyKinsta, op de Info pagina, het Pad van Omgevingsdetails.

Navigeer in de terminal naar de live map van je site met het volgende commando, waarbij je /www/your-site/public vervangt door het pad dat je gekopieerd hebt van MyKinsta.

cd /www/your-site/public

Initialiseer de map als een Git repository en stel de externe URL in om SSH te gebruiken met het volgende commando, waarbij je your-username en your-repo vervangt door je Bitbucket referenties en repository:

git init
git remote add origin [email protected]:your-username/your-repo.git

Bevestig dat de SSH instelling werkt door het volgende commando uit te voeren:

Je zou een bericht moeten zien dat lijkt op: “authenticated via ssh key. You can use git to connect to Bitbucket. Shell access is disabled.” Je Kinsta server is nu klaar om updates van Bitbucket te ontvangen en direct uit te rollen via Bitbucket Pipelines.

8. Omgevingsvariabelen toevoegen aan Bitbucket

Om gevoelige Kinsta informatie veilig op te slaan, moet je omgevingsvariabelen toevoegen aan Bitbucket. Ga in MyKinsta naar WordPress sites > sitenaam > Info; in de SFTP/SSH sectie heb je de Host, Poort en Gebruikersnaam nodig.

Gebruikersnaam, IP-adres en Poort van de Info-pagina van de site.
Gebruikersnaam, IP-adres en Poort van de Info-pagina van de site.

Ga in Bitbucket naar Repository Settings > Repository Variables en voeg het volgende toe:

  • KINSTA_USERNAME: Dit is je SSH gebruikersnaam voor de Kinsta server. Bitbucket Pipelines gebruikt deze om in te loggen en deployment commando’s uit te voeren.
  • KINSTA_SERVER_IP: Dit is het SSH Host adres van je Kinsta server. Hiermee weet Bitbucket Pipelines met welke server verbinding moet worden gemaakt voor de deployment.
  • PORT: Dit is de SSH poort die wordt gebruikt door je Kinsta server. Kinsta servers gebruiken een custom poort, dus die moet je hier opgeven.
  • SSH_PRIVATE_KEY: Dit is je base64 gecodeerde SSH privésleutel van je lokale machine. Bitbucket Pipelines gebruiken deze sleutel om zich te verifiëren op je Kinsta server. Om je privésleutel in base64 te coderen, voer je het volgende commando uit, kopieer je de uitvoer en voeg je deze als waarde toe:
    cat ~/.ssh/id_rsa | base64

9. Bitbucket Pipelines configureren

Om deployment te automatiseren, moet je een configuratiebestand bitbucket-pipelines.yml maken. Maak in de lokale map met de bestanden van je site een nieuw bestand met de naam bitbucket-pipelines.yml en voeg de volgende inhoud toe aan het bestand, waarbij je your-site vervangt door de mapnaam van het pad op je Kinsta site:

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'

Deze pipeline is ingesteld om deployments naar je Kinsta server te automatiseren wanneer er een nieuwe push is naar de main branch. De workflow doet het volgende:

  • Pipeline trigger: De pipelines sectie is geconfigureerd om te triggeren wanneer er een push wordt gedaan naar de main branch. Dit betekent dat elke nieuwe commit naar de main branch automatisch de deployment start.
  • Step: Deze wordt voor de duidelijkheid “Deploy to Kinsta” genoemd. Het bevat de belangrijkste acties voor de deployment.
  • SSH run pipe: Dit gebruikt de atlassian/ssh-run pipe, waarmee Bitbucket via SSH verbinding kan maken met je Kinsta server en commando’s op afstand kan uitvoeren. Deze pipe vereenvoudigt het opzetten van een SSH sessie, het uitvoeren van de commando’s en het sluiten van de sessie, zodat het niet nodig is om SSH details handmatig in het script te beheren.
  • Deployment commando’s: Het blok COMMAND bevat de commando’s waarmee de nieuwste code op je WordPress site wordt geïnstalleerd. Dit is wat elk commando doet:
    • Het eerste commando navigeert naar de live directory waar WordPress wordt gehost.
    • Het tweede commando voert dan git fetch origin main uit om de nieuwste code van de hoofdbranch in Bitbucket te halen.
    • Het laatste commando werkt dan de live site bij met de nieuwste code van de hoofdbranch.

Deze configuratie handelt alle aspecten van de deployment af – van het verbinden met Kinsta tot het bijwerken van je sitebestanden – zodat je WordPress site op Kinsta automatisch up-to-date blijft bij elke push naar main.

10. De pipeline testen

Commit en push het configuratiebestand bitbucket-pipelines.yml naar de main branch. Dit activeert automatisch de pipeline en start het deploymentproces. Je kunt de voortgang van de deployment volgen in het Bitbucket Pipelines dashboard. Als alles goed is ingesteld, zal Bitbucket verbinding maken met je Kinsta server, de nieuwste code ophalen en deze uitrollen naar je live site.

Controleer voor het oplossen van problemen de logs van de pipeline in Bitbucket, vooral als DEBUG is ingesteld op "true". De logboeken geven gedetailleerde informatie over elke stap, wat kan helpen bij het identificeren van verbindings- of configuratieproblemen.

Als de pipeline geen goede verbinding maakt met je Kinsta server, kan dit komen doordat de URL op afstand is ingesteld op HTTPS in plaats van SSH. Om dit te bevestigen, SSH je naar je Kinsta server en voer je het volgende commando uit in de map van je site:

git remote -v

Als het https:// toont in plaats van ssh://, dan moet je de externe URL bijwerken zodat de SSH-sleutel kan worden gebruikt voor authenticatie. Voer het volgende commando uit om over te schakelen naar SSH:

git remote set-url origin [email protected]:your-username/your-repo.git

Nadat je de URL hebt bijgewerkt, push je je wijzigingen opnieuw en de pipeline zou verbinding moeten maken met behulp van de SSH-sleutel.

Was dit artikel nuttig?