Al giorno d’oggi, gli sviluppatori di WordPress si affidano a Git per rendere lo sviluppo più fluido e permettere a più persone di lavorare allo stesso progetto senza pestarsi i piedi a vicenda.

Bitbucket è una piattaforma Git molto diffusa, ma non basta avere il proprio codice lì: è anche necessario avere un modo per collegare questo repository al server. In questo modo, gli aggiornamenti inviati a Bitbucket possono essere distribuiti automaticamente sul server, mantenendo il sito WordPress aggiornato senza passaggi manuali e ripetitivi.

È qui che entra in gioco Bitbucket Pipelines. Con questo strumento, è possibile creare pipeline di Bitbucket che permettono di impostare un flusso di lavoro per la distribuzione continua, in modo che gli aggiornamenti del repo vengano distribuiti automaticamente al sito. Se utilizzate Kinsta come host, potete utilizzare SSH e Bitbucket Pipelines per rendere l’intero processo automatico.

Questo articolo spiega come impostare la distribuzione continua per il proprio sito WordPress ospitato su Kinsta utilizzando Bitbucket Pipelines.

Prerequisiti

Prima di impostare la distribuzione continua per il vostro sito WordPress su Kinsta, assicuratevi di aver preparato quanto segue:

  1. Il vostro sito WordPress deve essere già ospitato su Kinsta.
  2. Un accesso locale ai file del vostro sito WordPress.
  3. Un account Bitbucket dove archiviare e inviare il codice del vostro sito.
  4. Una familiarità di base con Git, ad esempio come fare il push del codice e lavorare con un file .gitignore.

Configurare il sito WordPress su Bitbucket

Come utenti di Kinsta, avete due modi semplici per accedere ai file del vostro sito WordPress. Potete estrarre il vostro sito dal server Kinsta in DevKinsta, che permette di lavorare localmente, oppure potete creare un backup scaricabile direttamente dalla vostra dashboard MyKinsta. In questa guida utilizzeremo il metodo del backup.

Scaricare i file del sito WordPress

Per scaricare una copia dei file del vostro sito WordPress da Kinsta, seguite questi passaggi:

  1. Accedete al vostro sito nella dashboard di MyKinsta.
  2. Nella barra laterale di sinistra, cliccate su Backup per accedere ai backup dell’ambiente del vostro sito.
  3. Andate alla scheda Download e create un backup da scaricare.
  4. Una volta pronto il download, salvatelo sul vostro PC locale.

Questo backup sarà un file compresso. Decomprimetelo per accedere a tutti i file di WordPress.

Impostare il progetto per Git e creare un repository su Bitbucket

Aprite la cartella contenente i file del vostro sito nell’editor di codice che preferite. Per evitare il caricamento di file di base di WordPress non necessari, di file multimediali o di informazioni sensibili, aggiungete un file .gitignore alla cartella principale del vostro progetto.

Potete utilizzare un template standard, copiarne il contenuto e salvarlo per assicurarvi che vengano tracciati solo i file essenziali.

I vostri file WordPress locali sono ora pronti per Git. In Bitbucket, andate nel vostro spazio di lavoro e create un nuovo repository senza file. (Non includete un file .gitignore, perché ne abbiamo già creato uno in locale).

Impostare l’autenticazione SSH ed eseguire il push su Bitbucket

Per connettervi in modo sicuro al vostro repository Bitbucket, dovete impostare l’autenticazione SSH e poi eseguire il push del codice.

  1. Generate una coppia di chiavi SSH sul vostro computer locale. Usate il vostro indirizzo e-mail nel seguente comando:
    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).

  2. Copiate la chiave pubblica (~/.ssh/id_rsa_bitbucket.pub) e aggiungetela a Personal Bitbucket Settings > SSH Keys. Questo autorizza il vostro computer a inviare codice in modo sicuro.
    Aggiungere la chiave SSH a Bitbucket
    Aggiungere la chiave SSH a Bitbucket.

  3. Una volta aggiunta la chiave SSH, usate i seguenti comandi per inviare il codice a 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

    Sostituite your-username e your-repo con il vostro nome utente e il nome del repository Bitbucket.

Una volta fatto questo, la configurazione su Bitbucket è completa. Potete quindi configurare il server Kinsta per ricevere gli aggiornamenti dal vostro repository Bitbucket.

Configurare il server Kinsta per le distribuzioni automatiche

Per abilitare le distribuzioni automatiche da Bitbucket, dovrete stabilire un accesso SSH a Bitbucket e poi configurare Git per utilizzare SSH sul server Kinsta.

Passo 1: Configurare l’accesso SSH a Bitbucket per connessioni sicure

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.

Accedete al vostro server Kinsta tramite SSH utilizzando il comando terminale SSH disponibile nella dashboard MyKinsta:

Comando del terminale SSH in MyKinsta
Comando del terminale SSH in MyKinsta.

Quindi, generate una nuova chiave SSH (saltate questo passaggio se ne avete già una):

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

Premete Invio per salvare la chiave nella posizione predefinita e lasciate vuota la passphrase quando vi viene richiesto.

Generare la chiave pubblica SSH
Generare la chiave pubblica SSH.

Successivamente, dovrete aggiungere la chiave pubblica a Bitbucket. Per accedere alla chiave, usate questo comando:

cat ~/.ssh/id_rsa.pub

Copiate l’intero output, poi andate su Bitbucket Settings > SSH keys nel vostro account Bitbucket e aggiungete la chiave pubblica. In questo modo autorizzerete il server Kinsta ad accedere al vostro repository Bitbucket in modo sicuro.

Passo 2: Configurare Git per usare SSH sul server Kinsta

Accedete alla directory live del vostro sito sul server Kinsta eseguendo il comando:

cd /www/your-site/public

Potete trovare questo percorso nella sezione Dettagli ambiente della dashboard del vostro sito MyKinsta, come mostrato di seguito:

Percorso del server del sito WordPress
Percorso del server del sito WordPress.

Successivamente, inizializzate la directory come repository Git e impostate l’URL remoto per utilizzare SSH:

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

Sostituite your-username e your-repo con il vostro nome utente Bitbucket e il nome del repository, rispettivamente.

Confermate che la configurazione SSH funzioni eseguendo:

ssh -T [email protected]

In caso di successo, dovreste vedere un messaggio del tipo: “authenticated via SSH key. You can use git to connect to Bitbucket. Shell access is disabled” (autenticato tramite chiave SSH. Puoi usare git per connetterti a Bitbucket. L’accesso alla shell è disabilitato).

Con questa configurazione, il vostro server Kinsta è ora pronto a ricevere e distribuire gli aggiornamenti da Bitbucket direttamente attraverso le pipeline Bitbucket.

Configurare Bitbucket Pipelines per la distribuzione automatizzata

Bitbucket Pipelines è uno strumento di integrazione e distribuzione continua (CI/CD) che permette di automatizzare le attività quando apportate modifiche al vostro repository. In questa configurazione, configureremo una pipeline che attiva il deploy su Kinsta ogni volta che c’è un nuovo push sul branch main.

Aggiungere le variabili d’ambiente necessarie

Prima di configurare la pipeline, dovrete impostare alcune variabili d’ambiente in Bitbucket per memorizzare in modo sicuro le informazioni sensibili. Andate in Repository Settings > Repository Variables in Bitbucket e aggiungete le seguenti variabili con il loro valore corrispondente:

  • KINSTA_USERNAME. Questo è il vostro nome utente SSH per il server Kinsta. Viene utilizzato da Bitbucket Pipelines per accedere ed eseguire i comandi di distribuzione.
  • KINSTA_SERVER_IP. È l’indirizzo IP 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. Potete trovare questi dettagli nella pagina Info del vostro sito nella vostra dashboard MyKinsta.

    Dettagli STFP/SSH di MyKinsta
    Dettagli STFP/SSH di MyKinsta.

  • SSH_PRIVATE_KEY. Questa è la chiave privata SSH codificata in base64 del vostro computer locale. Bitbucket Pipelines utilizzerà questa chiave per autenticarsi al vostro server Kinsta. Per codificare la vostra chiave privata in base64, eseguite:
    cat ~/.ssh/id_rsa | base64

    Copiate l’output e aggiungetelo come valore a SSH_PRIVATE_KEY.

Configurazione della pipeline di Bitbucket

Ora scriviamo il file di configurazione, bitbucket-pipelines.yml, per automatizzare le distribuzioni. Questo file definisce la pipeline, specificando quando deve essere eseguita, quali comandi eseguire e come connettersi al server Kinsta. Potete farlo localmente nel vostro IDE.

Ecco la configurazione completa:

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'

Uno sguardo più da vicino alla configurazione di questa pipeline

Questa pipeline è impostata per automatizzare le distribuzioni sul vostro server Kinsta ogni volta che c’è un nuovo push sul branch main. Ecco una descrizione dettagliata di ciò che fa ogni parte:

  • Innesco della pipeline. La sezione pipelines è configurata per essere attivata in caso di push del branch main. Ciò significa che ogni nuovo commit su main avvierà automaticamente il deployment.
  • Step. Lo step è denominato “Deploy to Kinsta” per chiarezza. Questo step contiene le principali azioni di distribuzione.
  • pipe SSH-run. Utilizziamo la atlassian/ssh-run che permette a Bitbucket di connettersi al vostro server Kinsta tramite SSH e di eseguire i comandi da remoto. Questa pipe semplifica il processo di 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 sia aggiornato automaticamente ad ogni push su main.

Testare la pipeline

Salvate il file bitbucket-pipelines.yml nella directory principale del vostro repository ed eseguite il commit delle modifiche. Quando effettuerete il push al branch main, la pipeline si attiverà automaticamente e inizierà il processo di distribuzione.

Potete monitorare l’avanzamento della distribuzione nella dashboard di Bitbucket Pipelines. Se tutto è stato impostato correttamente, Bitbucket si collegherà al vostro server Kinsta, recupererà il codice più recente e lo distribuirà al vostro sito live.

I log di Bitbucket Pipelines
I log di Bitbucket Pipelines.

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.

Riepilogo

L’impostazione di distribuzioni automatiche da Bitbucket a Kinsta è un modo efficace per mantenere aggiornato il vostro sito WordPress senza il fastidio degli aggiornamenti manuali. Dopo aver collegato Bitbucket Pipelines e il vostro server Kinsta, ogni modifica al repository si riflette immediatamente sul vostro sito live, riducendo al minimo i tempi di inattività e gli errori di distribuzione.

Ricordate che DevKinsta offre un’opzione più semplice per gli sviluppatori. DevKinsta permette di eseguire il push del vostro ambiente di sviluppo locale direttamente a Kinsta con un solo clic, evitando la necessità di configurare una pipeline. Un ulteriore vantaggio di questo approccio è che possono essere incluse anche le modifiche al database, in modo da mantenere sincronizzati sia il codice che i contenuti senza alcuno sforzo.

Che ne pensate di questo processo? Avete domande o avete riscontrato qualche problema? Condividete il vostro feedback o chiedete nei commenti qui sotto!

Joel Olawanle Kinsta

Joel è uno Frontend developer che lavora in Kinsta come redattore tecnico. È un insegnante appassionato che ama l'open source e ha scritto oltre 200 articoli tecnici principalmente su JavaScript e i suoi framework.