RabbitMQ: Automatizzare con la CLI

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

Questa guida mostra come creare un servizio RabbitMQ, 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 RabbitMQ disponibili per il suo account. La CLI accetta direttamente il nome dello store (rabbitmq), quindi non è necessario cercare o copiare alcun ID.

# Elenca i service store RabbitMQ (aggiunga --organization se ne gestisce più di uno)
stackhero services-store-list --name="rabbitmq"

Può fare riferimento al nome dello store rabbitmq 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=rabbitmq

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

Ecco uno script di esempio che crea uno stack, aggiunge il suo servizio RabbitMQ, 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="rabbitmq"   # Il nome del service store RabbitMQ (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 RabbitMQ stack")
echo "Stack creato: ${stackId}"

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

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

# Recupera la configurazione del servizio, incluse le credenziali generate
stackhero service-configuration-get --service="rabbitmq" --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.