Su Kinsta abbiamo a disposizione il client Git. In questo modo potete accedere via SSH e tirare giù la vostra repo Git da Github, Gitlab, Bitbucket, o da qualsiasi altra terza parte. L’accesso SSH è disponibile su tutti i piani di hosting di Kinsta.

Se state appena iniziando, assicuratevi di leggere la nostra guida su git vs Github.

Tuttavia, non abbiamo ancora rilasciato la funzione che vi permette di eseguire git push kinsta my_site che vi permette di distribuire automaticamente. Ma è in arrivo. In ogni caso, si può sempre utilizzare facilmente Git su Kinsta, basta seguire le istruzioni qui sotto.

Come Utilizzare Git

È possibile creare in pochi minuti uno script di distribuzione che accede via SSH al vostro container Linux di Google Cloud e tirar giù l’ultima versione della vostra repo. Deine SSH-Details für deine Kinsta-Site findest du auf der “Info”-Seite deiner Site.

SSH-Terminal-Befehl in MyKinsta.

SSH-Terminal-Befehl in MyKinsta.

ssh my_site@1.2.3.4 -p PORT "cd /www/my_site/public && git pull"

Un altro modo per farlo è utilizzare WP Pusher. Lo utilizzano molti dei nostri clienti in quanto è molto semplice da utilizzare perché è necessario sapere come usare Git o SSH.

Austin ha un eccellente tutorial su come impostare la distribuzione automatica di Git con Kinsta utilizzando SSH.

Tra le alternative ricordiamo Beanstalk e DeployBot. Oppure potete seguire le istruzioni più dettagliate su Git che trovate qui sotto.

Clonare una Repo

Per clonare una repo:

git clone https://github.com/USER/REPO.git

Quando utilizzate Git per le repository private, utilizzate il vostro nome utente e la password di GitHub, che vengono quindi passati al server.

git clone https://username:password@github.com/USER/REPO.git

Se è attiva l’autenticazione a due fattori, è necessario utilizzare un token OAuth al posto delle credenziali standard. Seguite queste istruzioni su come creare una token OAuth.

Per clonare una repo con 2FA attivo:

git clone https://TOKEN@github.com/USER/REPO.git

Repo Privata

Se si tratta di una repo privata, al git pull devono essere aggiunte le credenziali:

Pull

ssh my_site@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://username:password@github.com/USER/REPO"

Repo Privata con 2FA

Se è attiva l’autenticazione a due fattori, è necessario utilizzare una token OAuth al posto delle credenziali standard. Seguite queste istruzioni per come creare una token OAuth. Per distribuire una repo con 2FA abilitato:

Pull

ssh my_site@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://TOKEN@github.com/USER/REPO"

Se il git pull di cui sopra non contiene le credenziali e il percorso HTTPS, tenterà di guardare localmente (piuttosto che alla repo ospitata) e di lanciare il messaggio: “Everything up-to-date”.

Gestire i Conflitti Riscontrati

Se si modifica qualcosa in remoto, i comandi di distribuzione di cui sopra verranno interrotti per i conflitti riscontrati. Cosa fare? Dipende da quale si vuole trattare come “King”. Nell’esempio qui sotto, tratteremo la repo Git come “King” e dimenticheremo i conflitti.

Forzare il Pull

Avviso. Il seguente comando sovrascrive le modifiche che esistono in remoto con ciò che è presente nella repo Git.

ssh my_site@1.2.3.4 -p PORT "cd /www/MY_SITE/public && git fetch https://TOKEN@github.com/USER/REPO.git && git reset –hard kinsta/mysite"

Se avete domande su come utilizzare Git su Kinsta, il nostro dipartimento di supporto sarà lieto di aiutarvi non appena sarete operativi.

Come Eseguire l’Auto Deploy su Kinsta con GitLab CI/CD (Avanzato)

Per gli utenti più avanzati, GitLab CI/CD (continuous integration/continuous delivery) può essere usato per spingere automaticamente le modifiche di codice al vostro sito Kinsta ogni volta che un nuovo commit viene realizzato verso la branch interessata. Questo metodo permette di spingere continuamente il codice nel vostro ambiente live su Kinsta senza sovrascrivere il database MySQL di WordPress.

Creare un Sito Kinsta (opzionale)

Ai fini di questo tutorial, creeremo un nuovo sito vuoto su Kinsta, e in seguito installeremo WordPress. Se avete già un sito su Kinsta, potete comunque seguire questo tutorial.

In MyKinsta, andate alla vostra pagina “Sites” e fate clic su Add Site in alto a destra. Selezionate l’opzione “Don’t Install WordPress”, date un nome al vostro sito, selezionate una località e fate clic sul pulsante Add Site per completare il processo di creazione del sito.

Creare un sito vuoto in MyKinsta.

Creare un sito vuoto in MyKinsta.

Creare un Progetto GitLab

Per iniziare, andate su GitLab e fate su Create a Project per creare un nuovo repository per il vostro sito Kinsta.

Creazione di un progetto in GitLab.

Creazione di un progetto in GitLab.

Selezionate l’opzione Blank Project e compilate i campi “Project Name” e “Project Slug”.

Creazione di un progetto vuoto in GitLab.

Creazione di un progetto vuoto in GitLab.

Per l’opzione “Livello di visibilità”, vi consigliamo di rendere il repository privato. Dal momento che questo repository può contenere plugin premium e codice del tema, lasciarlo accessibile su Internet pubblico permetterebbe a chiunque di scaricare i prodotti per i quali avete pagato.

Una volta terminata la configurazione del nuovo progetto, fate clic su Create Project per continuare.

Configurare le Chiavi SSH

Successivamente, sarà necessario aggiungere le chiavi SSH a GitLab e MyKinsta per consentire alle due piattaforme di comunicare tra loro. Cominciamo con l’aggiungere una chiave SSH in GitLab.

Aggiungere la chiave pubblica SSH a GitLab

Prima di tutto, entrate con SSH nel vostro ambiente live Kinsta, ed eseguite il comando cat qui sotto per visualizzare la vostra chiave pubblica SSH.

cat ~/.ssh/id_rsa.pub

La vostra chiave pubblica dovrebbe essere simile a quella qui sotto. Tenete aperta la finestra del vostro terminale per il momento e tornate a GitLab nel vostro browser.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7zdjwd6UIUJ5t4YnXNi6yhdHgrvIV2xgjvJ3592wd1Hzmnta4dau7yOIxQDU7/oNIr6DIskuIUii5ruGi4YZpIwB/AWGrn/uWb+FXJFiQHMZq9rCFcqtZXT0fyzKiSNkblV4F1RaPQJRvxfSUsSQ3jJU3FX8CF1c4R40CiBKkSHM8uavVIIESzgIHRiWVxkL9F6SKzg8GeTctJaAa3W+q1F1T60OKYmzH3OLdA37ZNmkm1CYWa8SF0JjOszxOnPwhfQ49P5r+rftXRFLz/7hGJ8CnUyzErSiUdUKNknUAB+w4KEZshQSNuiken0+GKqIw83dWWSyjiJJigcyDez2s+3AqDLHPG45NoBEXuBXjPQ9C08hokVyKlbzd/P2qvcnzUT5S6zTuaYOW+50+fiXeYkJlEoYYxoGRVx6FFdFqWyJx5UyaDv7QY3iQH0qct1iq9XGXMhBxIecIAEPUwF8nOp15in8L+5UIFMiNnihztTAXysc+8xvVwbuRlQIeR/E= ansible-generated on fvj-kinstagit

Fate clic sul menu a tendina dell’icona dell’utente nell’angolo in alto a destra di GitLab e poi su Settings.

Andate alla pagina delle impostazioni di GitLab,

Andate alla pagina delle impostazioni di GitLab,

Nella pagina “Settings”, fate clic su SSH Keys nella barra laterale.

SSH keys in GitLab.

SSH keys in GitLab.

Incollate la vostra chiave pubblica SSH nel campo di testo. Il campo del titolo dovrebbe auto-popolarsi con un nome, ma sentitevi liberi di cambiarlo se volete. GitLab permette anche di impostare una data di scadenza per la chiave SSH. Questa opzione è utile se si invalidano e si ruotano le chiavi SSH come parte del protocollo di sicurezza dell’infrastruttura. Se non lo fate, sentitevi liberi di lasciare vuoto il campo “Expires At”.

Aggiungete la vostra chiave SSH in GitLab.

Aggiungete la vostra chiave SSH in GitLab.

Dopo aver controllato due volte la configurazione, fate clic su Add Key per finalizzare il processo.

Aggiungere la chiave pubblica SSH a MyKinsta

Ora che la vostra chiave pubblica SSH è stata consegnata a GitLab, dovrete aggiungere la stessa chiave a MyKinsta. In MyKinsta, fate clic sull’icona del vostro utente nell’angolo in basso a sinistra e poi su User Settings. Questo passo aggiunge la chiave pubblica Kinsta al file authorized_keys del vostro sito (scrivibile solo da root e da MyKinsta), e permetterà a GitLab di inserire la chiave pubblica SSH nel vostro sito per spingere le modifiche al codice.

Impostazioni utente in MyKinsta.

Impostazioni utente in MyKinsta.

Scorrete verso il basso e fate clic su Add SSH Key.

Add SSH Key in MyKinsta.

Add SSH Key in MyKinsta.

Nella finestra modale, specificate un nome per la chiave SSH, incollate la chiave pubblica nel campo di testo e fate clic su Add SSH Key per finalizzare il processo.

Aggiunta della chiave SSH in MyKinsta.

Aggiunta della chiave SSH in MyKinsta.

Aggiungere la chiave privata SSH a GitLab

Successivamente, dovrete aggiungere la chiave privata SSH del vostro ambiente live Kinsta come variabile in GitLab. La chiave privata permetterà a GitLab di inserire SSH nel vostro sito Kinsta per spingere direttamente i cambiamenti di codice.

Per trovare la vostra chiave privata, eseguite il comando Terminal qui sotto nel vostro ambiente live Kinsta. Assicuratevi di non condividere la vostra chiave privata SSH al di fuori di GitLab.

cat ~/.ssh/id_rsa

In GitLab, fate sul progetto che avete creato in precedenza. Nella barra laterale, passate il mouse su “Settings” e fate clic su CI/CD.

Impostazioni del repository CI/CD di GitLab.

Impostazioni del repository CI/CD di GitLab.

Scorrete fino alla sezione “Variables”, fate clic sul pulsante “Expand” e poi su Add Variable. Usate SSH_PRIVATE_KEY per il nome della chiave, incollate la chiave privata nel campo di testo e fate clic su Add Variable per continuare.

Be sure you are adding your SSH private key. It should start with -----BEGIN OPENSSH PRIVATE KEY-----

Dopo che la variabile è stata aggiunta, potrete vederla nelle impostazioni del vostro repository.

Variabile chiave privata SSH in GitLab.

Variabile chiave privata SSH in GitLab.

Clonare la Repo GitLab su MyKinsta

Ora che sono state aggiunte le necessarie chiavi SSH, potete clonare il repository di GitLab nell’ambiente live di Kinsta. In GitLab, navigate verso il vostro repository, fate clic sul pulsante blu Clone e copiate l’URL sotto “Clone with SSH”.

Clonare con SSH in GitLab.

Clonare con SSH in GitLab.

Poi, entrate con SSH nel vostro ambiente live di Kinsta e navigate verso la vostra directory home. Se non siete sicuri di come raggiungere la vostra directory home, usate il comando qui sotto.

cd ~/

Una volta nella directory home, eseguite il comando git clone con l’URL copiato da GitLab.

git clone [your-repository-url-here]

Dopo aver clonato il repository, vedrete un avviso che dice “you appear to have cloned an empty repository”. Questo è un risultato normale perché il repo è vuoto al momento.

Clonate il vostro repository GitLab nel vostro ambiente live Kinsta.

Clonate il vostro repository GitLab nel vostro ambiente live Kinsta.

A Kinsta, la nostra configurazione Nginx serve contenuti dalla cartella ~/public. Così, vorrete cancellare la cartella ~/public corrente e rinominare la vostra cartella repo clonata in ~/public. Per farlo, eseguite i due comandi qui sotto.

rm -rf ~/public
mv ~/your-repo-folder-name ~/public

Configurare la Repo GitLab

Successivamente, usate il comando sottostante per navigare nella cartella ~/public.

cd ~/public

Eseguite i due comandi qui sotto per configurare il vostro repo GitLab. Assicuratevi di specificare un indirizzo email valido e un nome utente a vostra scelta.

git config --global user.email "youremail@address.com"
git config --global user.name "brian"

Installazione di WordPress con WP-CLI

Ora che il repo GitLab è stato clonato nel vostro ambiente live Kinsta e lo abbiamo configurato, installiamo WordPress. Potete installare WordPress manualmente scaricandolo da wordpress.org, oppure potete installarlo con WP-CLI. Per questo esempio, useremo WP-CLI per installare WordPress con il comando qui sotto nella cartella ~/public.

Alle prese con i tempi di inattività e problemi di WordPress? Kinsta è la soluzione di hosting progettata per farvi risparmiare tempo! Scopri i nostri servizi
wp core download

Dopo aver installato WordPress, la vostra cartella ~/public dovrebbe avere questo aspetto.

Una nuova installazione WordPress con WP-CLI.

Una nuova installazione WordPress con WP-CLI.

Andate quindi alla pagina “Domains” in MyKinsta per il vostro sito e visitate il vostro “Primary Domain”.

Visitate il vostro dominio principale per configurare WordPress.

Visitate il vostro dominio principale per configurare WordPress.

Sarete accolti con il processo di installazione di WordPress, che dura cinque minuti. Se non siete sicuri di come impostare WordPress, abbiamo qui una guida approfondita.

Configurare la nuova installazione di WordPress.

Configurare la nuova installazione di WordPress.

Dopo l’installazione di WordPress, dovreste essere in grado di vedere il vostro nuovo sito WordPress visitando il vostro dominio principale.

Una nuova installazione di WordPress.

Una nuova installazione di WordPress.

Configurare la Pipeline GitLab CI/CD

Successivamente, sarà necessario impostare un file di configurazione speciale per istruire GitLab ad avviare le distribuzioni automatiche dopo l’aggiornamento del brand master del repo. Per farlo, navigate nella cartella ~/public del vostro ambiente live Kinsta e create un nuovo file chiamato .gitlab-ci.yml con il comando sottostante.

cd ~/public && touch .gitlab-ci.yml

Dopo la creazione del file, aggiungete il seguente testo al file. È possibile modificare il file con nano o vim in Terminal, oppure con un editor SFTP. Se usate un client SFTP, assicuratevi di abilitare i file nascosti per vedere il file .gitlab-ci.yml.

before_script:
    - apt-get update -qq
    - apt-get install -qq git
    # Setup SSH deploy keys
    - 'which ssh-agent || ( apt-get install -qq openssh-client )'
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - mkdir -p ~/.ssh- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
deploy_live:
    type: deploy
    environment:
        name: Live
        url: your-primary-domain
    script:
        - ssh user@ip-address -p port-number "cd public-root && git checkout master && git pull origin master && exit"
    only:
        - master

Assicuratevi di modificare i parametri dell’url e dello script nel blocco deploy_live. Vorrete sostituire i valori in grassetto con le impostazioni del vostro sito dal cruscotto di MyKinsta.

Percorso pubblico e dettagli SSH in MyKinsta.

Percorso pubblico e dettagli SSH in MyKinsta.

L’unica only: - master del file si riferisce al ramo del repository che innescherà il processo CI/CD di GitLab. Con questa configurazione, i push al master branch avvieranno un deployment nel vostro ambiente live Kinsta. Se volete specificare un altro branch per attivare il deploy, sentitevi liberi di cambiare la configurazione.

Se volete implementare una granularità aggiuntiva alla configurazione per contabilizzare un ambiente di staging, potete aggiungere un ulteriore blocco deploy_staging con l’URL e i dettagli SSH per il vostro ambiente di staging Kinsta.

deploy_staging:
    type: deploy
    environment:
        name: Staging
        url: your-staging-domain
    script:
        - ssh user@ip-address -p port-number "cd public-root && git checkout master && git pull origin staging && exit"
    only:
        - staging

Notate anche l’unica only: - staging – questo significa che i push al brand di staging avvieranno il processo CI/CD di GitLab.

Commit Iniziale a GitLab

Ora che WordPress e il file di configurazione di GitLab sono impostati, facciamo un primo commit su GitLab. Per farlo, creeremo una nuova branch chiamato v0.1, inizieremo a tracciare i file nel repo, faremo il commit delle modifiche e spingeremo le modifiche a GitLab sulla branch v0.1. Eseguite i comandi qui sotto da ~/public per attivare il commit iniziale.

git checkout -b v0.1
git add .
git commit -a -m 'Initial Commit'
git push origin v0.1

Se controllate il vostro repository in GitLab, ora vedrete i file del vostro commit iniziale.

Commit iniziale a GitLab.

Commit iniziale a GitLab.

Configurare l’Ambiente di Staging di Kinsta

Il passo successivo è configurare un ambiente di staging Kinsta in modo da avere un posto sicuro per testare nuovi plugin, temi e codice senza impattare sull’ambiente di produzione. Per farlo, prima di tutto create un ambiente di staging in MyKinsta.

Creare un ambiente di staging in MyKinsta.

Creare un ambiente di staging in MyKinsta.

Entrate con SSH nell’ambiente di staging, ed eseguite il comando sottostante per controllare eventuali modifiche al codice.

cd ~/public && git status

Dovreste vedere un messaggio come quello qui sotto. Come potete vedere, la branch è quella v0.1 che avete creato in precedenza. Inoltre, il file wp-config.php è cambiato. Questo accade perché Kinsta aggiunge alcune linee aggiuntive a wp-config.php durante il push dal live allo staging.

File modificati nell'ambiente di staging di Kinsta.

File modificati nell’ambiente di staging di Kinsta.

Commit e Spinta delle Modifiche al Sito Live

Infine, facciamo alcune modifiche all’ambiente di staging e spingiamo un nuovo commit per l’ambiente live di Kinsta usando GitLab. Tenete presente che lo scopo di questo metodo è quello di bypassare la normale funzione “push to live” di Kinsta che sovrascrive anche il database di WordPress.

Per questo esempio, installiamo il plugin Yoast SEO usando WP-CLI con il comando sottostante.

cd ~/public && wp plugin install wordpress-seo

Dopo che il plugin SEO di Yoast è stato installato, eseguite i comandi qui sotto per fare un commit e spingere le modifiche alla branch v0.1.

git add .
git commit -a -m ‘Installed Yoast SEO plugin.’
git push origin v0.1

Infine, passiamo alla branch master, uniamo la v0.1 al master e spingiamo il master su GitLab con i comandi sottostanti. Questo farà sì che GitLab avvii un processo di distribuzione nel vostro ambiente live Kinsta a causa dell’unica only: - master nel file di configurazione di GitLab.

git checkout master
git merge v0.1
git push origin master

In GitLab, andate su CI/CD > Jobs nella barra laterale del vostro repo, e vedrete il lavoro in corso. Questo “job” è GitLab che spinge il plugin Yoast SEO nel vostro ambiente live di Kinsta.

Job attivo in GitLab.

Job attivo in GitLab.

Dopo che il lavoro è finito, eseguite wp plugin list sul vostro ambiente live Kinsta. Dovreste vedere wordpress-seo, cioè il plugin Yoast SEO che è stato installato in precedenza nell’ambiente di staging.

Il plugin Yoast SEO è stato distribuito tramite GitLab.

Il plugin Yoast SEO è stato distribuito tramite GitLab.

Se sviluppate temi o plugin che girano su siti Kinsta, impostare l’auto deploy tramite GitLab CI/CD può aiutare a velocizzare il vostro flusso di lavoro. Questa configurazione vi permette di distribuire il codice sia dal vostro ambiente locale che dall’ambiente di staging di Kinsta senza dover sovrascrivere il database MySQL sul vostro sito di produzione live.


Se ti è piaciuto questo tutorial, allora apprezzerai molto il nostro supporto. Tutti i piani di hosting di Kinsta includono supporto 24/7 da parte dei nostri sviluppatori e tecnici veterani di WordPress. Chatta con lo stesso team che supporta i nostri clienti Fortune 500. Scopri i nostri piani