

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
<a name="automate-rabbitmq-configuration-in-amazon-mq"></a>

*Yogesh Bhatia e Afroz Khan, Amazon Web Services*

## Riepilogo
<a name="automate-rabbitmq-configuration-in-amazon-mq-summary"></a>

[Amazon MQ](https://docs.aws.amazon.com/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 in Cloud 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
<a name="automate-rabbitmq-configuration-in-amazon-mq-prereqs"></a>

**Prerequisiti**
+ AWS Command Line Interface (AWS CLI) [installato e configurato in modo che punti al](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html) Account AWS
+ Ansible è installato, quindi puoi eseguire i playbook per creare la configurazione
+ **rabbitmqadmin** [installato (per istruzioni, consultate la documentazione di RabbitMQ)](https://www.rabbitmq.com/management-cli.html)
+ 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)

## Architecture
<a name="automate-rabbitmq-configuration-in-amazon-mq-architecture"></a>

**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](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)


## Tools (Strumenti)
<a name="automate-rabbitmq-configuration-in-amazon-mq-tools"></a>

**Servizi AWS**
+ [Amazon MQ](https://docs.aws.amazon.com/amazon-mq/) è un servizio di broker di messaggi gestito che semplifica la configurazione e la gestione di broker di messaggi nel cloud.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ti aiuta a configurare l' AWS infrastruttura e ad accelerare il provisioning del cloud con Infrastructure as Code.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)consente di interagire Servizi AWS utilizzando i comandi in una shell a riga di comando. 

**Altri strumenti**
+ [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) è 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](https://www.ansible.com/) è uno strumento open source per l'automazione delle applicazioni e dell'infrastruttura IT.

**Archivio di codice**

Il file di configurazione JSON utilizzato in questo modello e un esempio di playbook Ansible sono forniti in allegato.

## Epiche
<a name="automate-rabbitmq-configuration-in-amazon-mq-epics"></a>

### Crea la tua infrastruttura AWS
<a name="create-your-aws-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cluster RabbitMQ su. AWS | Se non disponi già di un cluster RabbitMQ, puoi utilizzarlo [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)per creare lo stack su. AWS In alternativa, puoi usare il [CloudFormation modulo in Ansible](https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/cloudformation_module.html) per creare lo stack. Con quest'ultimo approccio, puoi utilizzare Ansible per entrambe le attività: creare l'infrastruttura RabbitMQ e gestire le configurazioni.  | Informazioni generali su AWS, Ansible | 

### Creare la configurazione Amazon MQ per RabbitMQ
<a name="create-the-amqlong-for-rabbitmq-configuration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un file delle proprietà. | Scarica il file di configurazione JSON (`rabbitmqconfig.json`) nell'allegato o esportalo dalla console RabbitMQ.  Modificalo per configurare code, scambi e associazioni. Questo file di configurazione dimostra quanto segue:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/automate-rabbitmq-configuration-in-amazon-mq.html)<br />**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[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/automate-rabbitmq-configuration-in-amazon-mq.html)<br />È possibile utilizzare Console di gestione AWS o the AWS CLI per recuperare queste informazioni. Questi dettagli consentono al playbook Ansible di connettersi al cluster RabbitMQ Account AWS e di utilizzare il cluster RabbitMQ per eseguire i comandi.*Il computer che esegue il playbook Ansible deve essere in grado di accedere al tuo e AWS CLI deve essere già configurato Account AWS, come descritto nella sezione Prerequisiti.* | Informazioni generali su AWS | 
| Crea il file `hosts_var`. | Crea il `hosts_var` file per Ansible e assicurati che tutte le variabili siano definite nel file. Prendi in considerazione l'utilizzo di Ansible Vault per memorizzare la password. Puoi configurare il `hosts_var` file come segue (sostituisci gli asterischi con le tue informazioni):<pre>RABBITMQ_HOST: "***********.mq.us-east-2.amazonaws.com"<br />RABBITMQ_VHOST: "/"<br />RABBITMQ_USERNAME: "admin"<br />RABBITMQ_PASSWORD: "*******"</pre> | Ansible | 
| Crea un playbook Ansible. | Per un playbook di esempio, vedi `ansible-rabbit-config.yaml` in allegato. Scarica e salva questo file. Il playbook Ansible importa e gestisce tutte le configurazioni di RabbitMQ, come code, scambi e associazioni, richieste dalle applicazioni. <br />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 | 

### Distribuzione della configurazione
<a name="deploy-the-configuration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui il playbook. | Esegui il playbook Ansible che hai creato nell'epopea precedente.<pre>ansible-playbook ansible-rabbit-config.yaml</pre><br />Puoi verificare le nuove configurazioni sulla console RabbitMQ. | Informazioni generali su AWS, RabbitMQ, Ansible | 

## Risorse correlate
<a name="automate-rabbitmq-configuration-in-amazon-mq-resources"></a>
+ [Migrazione da RabbitMQ ad Amazon MQ](https://aws.amazon.com/blogs/compute/migrating-from-rabbitmq-to-amazon-mq/) (AWS post sul blog)
+ [Strumento a riga di comando di gestione](https://www.rabbitmq.com/management-cli.html) (documentazione RabbitMQ)
+ [Crea o elimina uno AWS CloudFormation stack (documentazione Ansible](https://docs.ansible.com/ansible/latest/collections/amazon/aws/cloudformation_module.html))
+ [Migrazione di applicazioni basate su messaggi su Amazon MQ for RabbitMQ](https://aws.amazon.com/blogs/compute/migrating-message-driven-applications-to-amazon-mq-for-rabbitmq/) (AWS post sul blog)

## Allegati
<a name="attachments-294120b6-c95f-4cc5-bf85-5ad7e2abdad5"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/attachments/attachment.zip)