Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Automatizza la configurazione di RabbitMQ in Amazon MQ
Creato da Yogesh Bhatia (AWS) e Afroz Khan (AWS)
Ambiente: PoC o pilota | Tecnologie: messaggistica e comunicazioni DevOps; Infrastruttura | Servizi AWS: Amazon MQ; AWS CloudFormation |
Riepilogo
Amazon MQ è un servizio di broker di messaggi gestito che offre compatibilità con molti broker di messaggi popolari. L'uso di Amazon MQ con RabbitMQ fornisce un robusto cluster RabbitMQ gestito nel cloud Amazon Web Services (AWS) con più broker e opzioni di configurazione. Amazon MQ fornisce un'infrastruttura altamente disponibile, sicura e scalabile e può elaborare un gran numero di messaggi al secondo con facilità. Più applicazioni possono utilizzare l'infrastruttura con diversi host virtuali, code e scambi. Tuttavia, la gestione di queste opzioni di configurazione o la creazione manuale dell'infrastruttura possono richiedere tempo e impegno. Questo modello descrive un modo per gestire le configurazioni per RabbitMQ in un unico passaggio, tramite un singolo file. È possibile incorporare il codice fornito con questo pattern in qualsiasi strumento di integrazione continua (CI) come Jenkins o Bamboo.
È possibile utilizzare questo modello per configurare qualsiasi cluster RabbitMQ. Tutto ciò che serve è la connettività al cluster. Sebbene esistano molti altri modi per gestire le configurazioni di RabbitMQ, questa soluzione crea intere configurazioni di applicazioni in un unico passaggio, in modo da poter gestire facilmente code e altri dettagli.
Prerequisiti e limitazioni
Prerequisiti
AWS Command Line Interface (AWS CLI) installata e configurata in modo che punti al tuo account AWS (per istruzioni, consulta la documentazione AWS CLI)
Ansible è installato, quindi puoi eseguire i playbook per creare la configurazione
rabbitmqadmin installato (per istruzioni, consultate la documentazione di RabbitMQ)
Un cluster RabbitMQ in Amazon MQ, creato con parametri Amazon affidabili CloudWatch
Requisiti aggiuntivi
Assicurati di creare le configurazioni per gli host e gli utenti virtuali separatamente e non come parte di JSON.
Assicurati che la configurazione JSON faccia parte del repository e sia controllata dalla versione.
La versione della CLI di rabbitmqadmin deve essere la stessa del server RabbitMQ, quindi l'opzione migliore è scaricare la CLI dalla console RabbitMQ.
Come parte della pipeline, assicurati che la sintassi JSON sia convalidata prima di ogni esecuzione.
Versioni del prodotto
AWS CLI versione 2.0
Ansible versione 2.9.13
rabbitmqadmin versione 3.9.13 (deve essere la stessa della versione del server RabbitMQ)
Architettura
Stack tecnologico di origine
Un cluster RabbitMQ in esecuzione su una macchina virtuale (VM) locale esistente o su un cluster Kubernetes (in locale o nel cloud)
Stack tecnologico Target
Configurazioni RabbitMQ automatizzate su Amazon MQ per RabbitMQ
Architettura Target
Esistono molti modi per configurare RabbitMQ. Questo modello utilizza la funzionalità di importazione di configurazione, in cui un singolo file JSON contiene tutte le configurazioni. Questo file applica tutte le impostazioni e può essere gestito da un sistema di controllo delle versioni come Bitbucket o Git. Questo modello utilizza Ansible per implementare la configurazione tramite la CLI rabbitmqadmin.
![Automazione della configurazione di RabbitMQ in Amazon MQ](images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)
Strumenti
Strumenti
rabbitmqadmin è uno strumento a riga di comando per l'
API basata su HTTP di RabbitMQ. Viene utilizzato per gestire e monitorare i nodi e i cluster RabbitMQ. Ansible
è uno strumento open source per l'automazione delle applicazioni e dell'infrastruttura IT. L'interfaccia a riga di comando di AWS consente di interagire con i servizi AWS utilizzando i comandi in una shell a riga di comando.
Servizi AWS
Codice
Il file di configurazione JSON utilizzato in questo modello e un esempio di playbook Ansible sono forniti in allegato.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un cluster RabbitMQ su AWS. | Se non disponi già di un cluster RabbitMQ, puoi utilizzare AWS CloudFormation per creare lo stack su AWS. In alternativa, puoi utilizzare il modulo Cloudformation in Ansible | AWS CloudFormation, Ansible |
Attività | Descrizione | Competenze richieste |
---|---|---|
Creare un file delle proprietà. | Scarica il file di configurazione JSON ( - Crea due code: e - Crea due scambi: - Implementa l'associazione tra le code e gli scambi Queste configurazioni vengono eseguite sull'host virtuale root (/), come richiesto da rabbitmqadmin. | JSON |
Recupera i dettagli dell'infrastruttura Amazon MQ for RabbitMQ. | Recupera i seguenti dettagli per l'infrastruttura RabbitMQ su AWS:
Puoi utilizzare la Console di gestione AWS o la CLI AWS per recuperare queste informazioni. Questi dettagli consentono al playbook Ansible di connettersi al tuo account AWS e utilizzare il cluster RabbitMQ per eseguire comandi. Importante: il computer che esegue il playbook Ansible deve essere in grado di accedere al tuo account AWS e la CLI AWS deve essere già configurata, come descritto nella sezione Prerequisiti. | CLI AWS, Amazon MQ |
Crea il file hosts_var. | Crea il
| Ansible |
Crea un playbook Ansible. | Per un playbook di esempio, vedi Segui le migliori pratiche per i playbook Ansible, come la protezione delle password. Usa Ansible Vault per la crittografia delle password e recupera la password di RabbitMQ dal file crittografato. | Ansible |
Attività | Descrizione | Competenze richieste |
---|---|---|
Esegui il playbook. | Esegui il playbook Ansible che hai creato nell'epopea precedente.
Puoi verificare le nuove configurazioni sulla console RabbitMQ. | RabbitMQ, Amazon MQ, Ansible |