GitLab Runner: Automatizzare con la CLI

Avvia GitLab-Runner, recupera le sue credenziali e modifica la sua configurazione in modo programmato con la Stackhero CLI

👋 Benvenuto nella documentazione di Stackhero!

Stackhero ti offre una soluzione GitLab Runner cloud facile da usare, progettata per gestire in modo efficiente i tuoi job GitLab CI/CD. Ecco cosa puoi aspettarti:

  • Minuti CI/CD illimitati: nessuna fatturazione al minuto, le tue pipeline possono essere eseguite ogni volta che ne hai bisogno.
  • Job concorrenti multipli: esegui più job contemporaneamente per velocizzare l'intera pipeline.
  • Docker executor con supporto Docker-in-Docker: semplifica la creazione e il push delle tue immagini container.
  • Compatibile sia con GitLab.com che con qualsiasi istanza GitLab self-managed.
  • Una VM privata e dedicata alimentata da dischi NVMe/SSD veloci per build affidabili e costanti.
  • Disponibile sia nelle regioni 🇪🇺 Europa che 🇺🇸 USA.

Risparmia tempo: puoi collegare il tuo primo GitLab Runner e iniziare a eseguire pipeline in pochi minuti!

Questa guida mostra come creare un servizio GitLab-Runner, leggere le sue credenziali e aggiornare la sua configurazione interamente dalla riga di comando, senza alcun clic sul dashboard. È l'ideale per script, pipeline CI e agenti AI.

Per tutte le operazioni utilizzeremo la Stackhero CLI. Se non l'ha già fatto, può installarla con:

curl -fsSL https://www.stackhero.io/install.sh | sh

Il modo più semplice per iniziare è effettuare il login tramite browser. Quando esegue il comando di login, la CLI apre una pagina web dove può approvare l'accesso. Nessuna password o codice 2FA viene inserito direttamente nella CLI.

stackhero login

Dopo l'accesso, le sue credenziali vengono memorizzate localmente e saranno utilizzate automaticamente dai successivi comandi CLI.

Per ambienti completamente automatizzati come script o pipeline CI, può preferire un token di accesso non interattivo. Può crearne uno dal suo dashboard (Account > Access tokens), quindi esportarlo come variabile d'ambiente. La CLI, così come qualsiasi script eseguito, lo rileverà automaticamente.

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

Successivamente, vorrà elencare i service store GitLab-Runner disponibili per il suo account. La CLI accetta direttamente il nome dello store (gitlab-runner), quindi non è necessario cercare o copiare alcun ID.

# Elenca i service store GitLab-Runner (aggiunga --organization se ne gestisce più di uno)
stackhero services-store-list --name="gitlab-runner"

Può fare riferimento al nome dello store gitlab-runner nei comandi successivi, oppure scegliere un ID specifico svs-xxxxxx dall'elenco se preferisce.

# Elenca le dimensioni delle istanze per il suo service store (utilizzi la colonna NAME per --instance)
stackhero instances-store-list --service-store=gitlab-runner

# Elenca le regioni disponibili (nomi come "europe")
stackhero regions-list

Ecco uno script di esempio che crea uno stack, aggiunge il suo servizio GitLab-Runner, attende che venga avviato, recupera la configurazione (incluse le credenziali generate) e applica una nuova configurazione.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="gitlab-runner"   # Il nome del service store GitLab-Runner (vedi step 2)
instance="..."                # Una dimensione dell'istanza dallo step 3
region="europe"               # Un nome di regione dallo step 3

# Crea uno stack per il suo servizio (usa l'organizzazione predefinita; aggiunga --organization se necessario)
stackId=$(stackhero --format=script stack-create \
  --name="My GitLab-Runner stack")
echo "Stack creato: ${stackId}"

# Aggiunge GitLab-Runner allo stack (i nomi vengono risolti automaticamente)
serviceId=$(stackhero --format=script service-add \
  --stack="My GitLab-Runner stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Servizio aggiunto: gitlab-runner"

# Attende che il servizio sia completamente operativo (può richiedere alcuni minuti)
stackhero service-wait-for --service="gitlab-runner"

# Recupera la configurazione del servizio, incluse le credenziali generate
stackhero service-configuration-get --service="gitlab-runner" --format=json

Il comando service-configuration-get restituisce la configurazione completa del servizio, incluse password generate automaticamente e dettagli di connessione. L'output è in formato JSON, facilitando l'utilizzo in script e automazioni.

stackhero service-configuration-get --service=svc-xxxxxx --format=json

Può consultare uno schema di configurazione di esempio e poi applicare le sue impostazioni personalizzate. Quando aggiorna la configurazione, il servizio potrebbe riavviarsi per applicare le modifiche.

# Visualizza lo schema di configurazione e un esempio per il suo servizio
stackhero service-configuration-example --service=svc-xxxxxx

# Applica una configurazione personalizzata (il servizio si riavvia se necessario)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Attende che la nuova configurazione venga applicata
stackhero service-wait-for --service=svc-xxxxxx

Ecco fatto. Ha ora visto l'intero ciclo di vita: avviare un servizio, recuperare le sue credenziali e riconfigurarlo, tutto in modo scriptabile e automatizzato. Per approfondire, consulti la documentazione completa della CLI, che copre anche l'autenticazione non interattiva tramite STACKHERO_TOKEN illustrata qui.