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.
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 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.
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.
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:
ssh -T [email protected]
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.
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 demain
branch. Dit betekent dat elke nieuwe commit naar demain
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.