Bitbucket Pipelines
Per gli utenti avanzati, Bitbucket CI/CD (Continuous Integration/Continuous Delivery o Continuous Deployment) può distribuire automaticamente le modifiche al codice del sito Kinsta ogni volta che un nuovo commit viene inviato al branch designato. Questa configurazione consente di distribuire il codice senza problemi dal proprio ambiente locale tramite SSH e Bitbucket Pipelines, consentendo aggiornamenti continui al sito.
Per seguire questi passaggi, è necessario avere un sito esistente ospitato su Kinsta e un account Bitbucket.
1. Scaricare un backup del sito
È possibile scaricare un backup del sito per configurare il repository Bitbucket e lavorarci in locale. In alternativa, si può usare DevKinsta per prelevare il sito dal server Kinsta e lavorarci in locale.
In MyKinsta, andate su Siti WordPress > nome del sito > Backup > Scarica > Crea backup ora.
Quando il backup è pronto, cliccate su Download, salvate il backup sul vostro computer locale e decomprimete i file in una cartella.
2. Configurare il repository Bitbucket
Aprite la cartella contenente i file del sito nell’editor di codice che preferite. Per impedire il caricamento di file core di WordPress non necessari, di file multimediali o di informazioni sensibili, aggiungete un file .gitignore
alla directory principale del progetto. Potete utilizzare un template .gitignore standard di WordPress, copiarne il contenuto e salvarlo per assicurarvi che vengano tracciati solo i file essenziali.
In Bitbucket, andate allo spazio di lavoro e create un nuovo repository. Assicuratevi che Include a README e Include .gitignore siano impostati su No. Una volta creato il repository, dovrete anche abilitare le pipeline. Nel repository, andate su Impostazioni e selezionate Enable pipelines.
3. Configurare l’autenticazione SSH
Per connettervi in modo sicuro al vostro repository Bitbucket, dovrete impostare l’autenticazione SSH.
Generate una coppia di chiavi SSH sul vostro computer locale utilizzando il seguente comando, sostituendo [email protected]
con il vostro indirizzo e-mail:
ssh-keygen -t ed25519 -C "[email protected]"
Salvate la coppia di chiavi in una posizione che potete facilmente consultare (ad esempio, ~/.ssh/id_rsa_bitbucket
).
Aprite e copiate la chiave pubblica (~/.ssh/id_rsa_bitbucket.pub
). In Bitbucket, andate su Settings > Personal Bitbucket Settings > SSH Keys > Add key e incollate i dettagli della chiave pubblica. Questo autorizza il vostro computer a inviare codice in modo sicuro.
Aggiungete la stessa chiave in MyKinsta, andate al vostro nome utente > Impostazioni utente > Aggiungi chiave SSH, incollate i dettagli della stessa chiave pubblica e cliccate su Aggiungi chiave SSH.
4. Inviare il codice a Bitbucket
Aprite la cartella contenente i file del vostro sito nell’editor di codice che preferite e usate i seguenti comandi per inviare il codice a Bitbucket, sostituendo your-username
e your-repo
con il vostro nome utente e il nome del repository di Bitbucket:
# 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. Configurare l’accesso SSH a Bitbucket in MyKinsta
Per consentire al server Kinsta di prelevare il codice da Bitbucket, dovete generare una chiave SSH sul server e aggiungere la sua chiave pubblica al vostro account Bitbucket.
Aprite un nuovo terminale e accedete al vostro server Kinsta utilizzando il comando terminale SSH dalla pagina Info del vostro sito in MyKinsta.
Inserite la password del sito e poi generate una nuova chiave SSH utilizzando il seguente comando, sostituendo [email protected]
con il vostro indirizzo e-mail:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Premete Invio per salvare la chiave nella posizione predefinita e lasciate vuota la passphrase quando viene richiesto.
6. Aggiungere la chiave SSH a Bitbucket
Accedete al contenuto del file della chiave pubblica (ad esempio, ~/.ssh/id_rsa.pub
) con il seguente comando:
cat ~/.ssh/id_rsa.pub
Copiate l’intero risultato, poi in Bitbucket andate su Settings > Personal Bitbucket Settings > SSH Keys > Add key e aggiungete la chiave pubblica. Questo autorizza il server Kinsta ad accedere al vostro repository Bitbucket in modo sicuro.
7. Configurare Git per utilizzare SSH sul server Kinsta
In MyKinsta, nella pagina Info, copiate il percorso da Dettagli ambiente.
Nel terminale, navigate nella directory live del vostro sito con il seguente comando, sostituendo /www/your-site/public
con il percorso copiato da MyKinsta.
cd /www/your-site/public
Inizializzate la directory come repository Git e impostate l’URL remoto per utilizzare SSH con il seguente comando, sostituendo your-username
e your-repo
con le credenziali e il repository Bitbucket:
git init
git remote add origin [email protected]:your-username/your-repo.git
Confermate che la configurazione SSH funziona eseguendo il comando:
ssh -T [email protected]
Dovreste vedere un messaggio simile a: “authenticated via ssh key. You can use git to connect to Bitbucket. Shell access is disabled” (Autenticato tramite chiave ssh. Potete usare git per connettervi a Bitbucket. L’accesso alla shell è disabilitato). Il vostro server Kinsta è ora pronto a ricevere e distribuire gli aggiornamenti da Bitbucket direttamente attraverso Bitbucket Pipelines.
8. Aggiungere variabili d’ambiente a Bitbucket
Per memorizzare in modo sicuro le informazioni sensibili di Kinsta, dovete aggiungere delle variabili d’ambiente a Bitbucket. In MyKinsta, andate su Siti WordPress > Nome del sito> Info; nella sezione SFTP/SSH, dovete inserire Host, Porta e Nome utente.
In Bitbucket, andate su Repository Settings > Repository Variables e aggiungete quanto segue:
KINSTA_USERNAME
. Questo è il vostro nome utente SSH per il server Kinsta. Bitbucket Pipelines lo utilizza per accedere ed eseguire i comandi di distribuzione.KINSTA_SERVER_IP
. Questo è l’indirizzo SSH Host del vostro server Kinsta. Permette a Bitbucket Pipelines di sapere a quale server connettersi per la distribuzione.PORT
. Questa è la porta SSH utilizzata dal vostro server Kinsta. I server Kinsta utilizzano una porta personalizzata, quindi dovete specificarla qui.SSH_PRIVATE_KEY
. Questa è la chiave privata SSH codificata in base64 del vostro computer locale. Bitbucket Pipelines utilizzano questa chiave per autenticarsi al vostro server Kinsta. Per codificare la chiave privata in base64, eseguite il seguente comando, copiate l’output e aggiungetelo come valore:cat ~/.ssh/id_rsa | base64
9. Configurazione di Bitbucket Pipelines
Per automatizzare le distribuzioni, è necessario creare un file di configurazione bitbucket-pipelines.yml
. Nella cartella locale contenente i file del vostro sito, create un nuovo file chiamato bitbucket-pipelines.yml
e aggiungete il seguente contenuto al file, sostituendo your-site
con il nome della cartella del percorso del vostro sito Kinsta:
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'
Questa pipeline è impostata per automatizzare le distribuzioni sul vostro server Kinsta ogni volta che c’è un nuovo push sul branch main
. Il flusso di lavoro esegue le seguenti operazioni:
- Trigger della pipeline: la sezione
pipelines
è configurata per attivarsi quando viene effettuato un push al branchmain
. Ciò significa che ogni nuovo commit nel branchmain
avvia automaticamente il deployment. - Step: questo step è chiamato “Deploy to Kinsta” per chiarezza. Contiene le principali azioni di distribuzione.
- SSH-run pipe: utilizza il metodo
atlassian/ssh-run
che permette a Bitbucket di connettersi al vostro server Kinsta tramite SSH e di eseguire comandi da remoto. Questa pipe semplifica l’impostazione di una sessione SSH, l’esecuzione dei comandi e la chiusura della sessione, quindi non è necessario gestire manualmente i dettagli SSH nello script. - Comandi di distribuzione: il blocco
COMMAND
contiene i comandi per distribuire il codice più recente al vostro sito WordPress. Ecco cosa fa ogni comando:- Il primo comando naviga nella directory live dove è ospitato WordPress.
- Il secondo comando esegue
git fetch origin main
per prelevare il codice più recente dal branch principale di Bitbucket. - L’ultimo comando aggiorna il sito live con il codice più recente del branch principale.
Questa configurazione gestisce tutti gli aspetti della distribuzione, dalla connessione a Kinsta all’aggiornamento dei file del sito, in modo che il vostro sito WordPress su Kinsta rimanga aggiornato automaticamente ad ogni push su main
.
10. Testare la pipeline
Eseguite il commit e il push del file di configurazione bitbucket-pipelines.yml
nel branch main
. In questo modo si attiva automaticamente la pipeline e si avvia il processo di distribuzione. Potete monitorare l’avanzamento del deployment nella dashboard di Bitbucket Pipelines. Se tutto è stato configurato correttamente, Bitbucket si connetterà al vostro server Kinsta, recupererà il codice più recente e lo distribuirà al vostro sito live.
Per la risoluzione dei problemi, controllate i log della pipeline in Bitbucket, soprattutto se DEBUG
è impostato su "true"
. I log forniscono informazioni dettagliate su ogni fase, che possono aiutare a identificare eventuali problemi di connessione o configurazione.
Se la pipeline non si connette correttamente al vostro server Kinsta, ciò potrebbe essere dovuto al fatto che l’URL remoto è impostato su HTTPS invece che su SSH. Per confermarlo, accedete al vostro server Kinsta tramite SSH ed eseguite il seguente comando nella directory del vostro sito:
git remote -v
Se viene visualizzato https://
invece di ssh://
, dovrete aggiornare l’URL remoto in modo che la chiave SSH possa essere utilizzata per l’autenticazione. Eseguite questo comando per passare a SSH:
git remote set-url origin [email protected]:your-username/your-repo.git
Dopo aver aggiornato l’URL, eseguite nuovamente il push delle modifiche e la pipeline dovrebbe connettersi utilizzando la chiave SSH.