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.

Creare un backup scaricabile in MyKinsta.
Creare un backup scaricabile in MyKinsta.

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.

Come aggiungere la chiave SSH alle Impostazioni di Bitbucket.
Come aggiungere la chiave SSH alle Impostazioni di Bitbucket.

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.

Comando terminale SSH per il vostro sito.
Comando terminale SSH per il vostro sito.

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.

Generare una chiave SSH.
Generare una chiave SSH.

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:

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.

Nome utente, indirizzo IP e Porta dalla pagina Info del sito.
Nome utente, indirizzo IP e Porta dalla pagina Info del sito.

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 branch main. Ciò significa che ogni nuovo commit nel branch main 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.

Questo articolo ti è stato utile?