RabbitMQ: Automatize com a CLI

Inicie o RabbitMQ, recupere as suas credenciais e altere a sua configuração programaticamente com a Stackhero CLI

Este guia mostra-lhe como criar um serviço RabbitMQ, ler as suas credenciais e atualizar a sua configuração totalmente a partir da linha de comandos, sem necessidade de clicar no dashboard. É ideal para scripts, pipelines de CI e agentes de IA.

Vamos utilizar a Stackhero CLI para todas as tarefas. Se ainda não o fez, pode instalá-la com:

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

A forma mais simples de começar é iniciar sessão através do seu navegador. Quando executa o comando de login, a CLI abre uma página web onde pode aprovar o acesso. Não é necessário introduzir passwords ou códigos 2FA diretamente na CLI.

stackhero login

Após iniciar sessão, as suas credenciais ficam guardadas localmente e serão utilizadas automaticamente nos próximos comandos da CLI.

Para ambientes totalmente automatizados, como scripts ou pipelines de CI, poderá preferir um token de acesso não interativo. Pode criar um a partir do seu dashboard (Conta > Access tokens) e exportá-lo como variável de ambiente. A CLI, assim como qualquer script que execute, irá detetá-lo automaticamente.

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

De seguida, irá querer listar os serviços store RabbitMQ disponíveis na sua conta. A CLI aceita diretamente o nome do store (rabbitmq), pelo que não é necessário procurar ou copiar IDs.

# Listar os serviços store RabbitMQ (adicione --organization se gerir mais do que um)
stackhero services-store-list --name="rabbitmq"

Pode referir-se ao nome do store rabbitmq nos comandos seguintes, ou escolher um ID específico svs-xxxxxx da lista, se preferir.

# Listar tamanhos de instância para o seu serviço store (utilize a coluna NAME para --instance)
stackhero instances-store-list --service-store=rabbitmq

# Listar regiões disponíveis (nomes como "europe")
stackhero regions-list

Segue-se um exemplo de script que cria um stack, adiciona o seu serviço RabbitMQ, aguarda que este inicie, recupera a sua configuração (incluindo as credenciais geradas) e depois aplica uma nova configuração.

#!/bin/bash
set -e

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

serviceStore="rabbitmq"   # O nome do serviço store RabbitMQ (ver passo 2)
instance="..."                # Um tamanho de instância do passo 3
region="europe"               # Um nome de região do passo 3

# Criar um stack para o seu serviço (utiliza a sua organização por defeito; adicione --organization se necessário)
stackId=$(stackhero --format=script stack-create \
  --name="My RabbitMQ stack")
echo "Stack criado: ${stackId}"

# Adicionar RabbitMQ ao stack (os nomes são resolvidos automaticamente)
serviceId=$(stackhero --format=script service-add \
  --stack="My RabbitMQ stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Serviço adicionado: rabbitmq"

# Aguardar que o serviço esteja totalmente operacional (pode demorar alguns minutos)
stackhero service-wait-for --service="rabbitmq"

# Recuperar a configuração do serviço, incluindo as credenciais geradas
stackhero service-configuration-get --service="rabbitmq" --format=json

O comando service-configuration-get devolve a configuração completa do seu serviço, incluindo passwords geradas automaticamente e detalhes de ligação. O resultado é em formato JSON, facilitando a utilização em scripts e automação.

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

Pode consultar um exemplo de esquema de configuração e depois aplicar as suas próprias definições. Ao atualizar a configuração, o serviço pode reiniciar para aplicar as alterações.

# Ver o esquema de configuração e um exemplo para o seu serviço
stackhero service-configuration-example --service=svc-xxxxxx

# Aplicar uma configuração personalizada (o serviço reinicia se necessário)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Aguardar que a nova configuração seja aplicada
stackhero service-wait-for --service=svc-xxxxxx

E está feito. Acabou de ver todo o ciclo de vida: iniciar um serviço, recuperar as suas credenciais e reconfigurá-lo, tudo de forma automatizada e scriptável. Para saber mais, consulte a documentação completa da CLI, que também cobre a autenticação não interativa com STACKHERO_TOKEN demonstrada aqui.