marcobellaccini.ansible_rabbitmq_minimalistic

ansible-rabbitmq-minimalista

Estado de construcción

Rol de Ansible para RabbitMQ minimalista, pero poderoso y habilitado para clustering.

Escrito para Debian 10 (también puede funcionar en otras versiones y distribuciones, si es así, por favor házmelo saber).

Variables del Rol

Aparte de los valores predeterminados del rol (a los que puedes referirte en este archivo), probablemente querrás desplegar tu archivo rabbitmq.conf personalizado en los servidores.

Puedes hacer que el rol genere y despliegue tu archivo rabbitmq.conf definiendo la variable rabbitmq_conf_template:

rabbitmq_conf_template: "ruta/a/rabbitmq.conf.j2"

La ruta es relativa al directorio del playbook.

De esta manera, también puedes desplegar un clúster de RabbitMQ simplemente aprovechando la variable cluster_formation.classic_config.nodes en rabbitmq.conf.

Por ejemplo, puedes usar una plantilla rabbitmq.conf.j2 como esta:

{% for host in ansible_play_hosts_all %}
cluster_formation.classic_config.nodes.{{ loop.index }} = rabbit@{{ hostvars[host]['inventory_hostname'] }}
{% endfor %}

Para habilitar el clustering, tendrás que configurar los hosts con la misma cookie de erlang.

Para esto, puedes usar la variable rabbitmq_erlang_cookie (se recomienda usar Ansible Vault para encriptar la cookie).

Cuando estés haciendo clustering, también tendrás que establecer serial: 1 en tu playbook (de lo contrario, los nodos pueden experimentar problemas al intentar formar el clúster).

Además, puedes habilitar plugins de RabbitMQ simplemente especificando y desplegando un archivo enabled_plugins de RabbitMQ desde una plantilla:

rabbitmq_enabled_plugins_template: "ruta/a/enabled_plugins.j2"

De nuevo, la ruta es relativa al directorio del playbook.

Para otras variables, consulta Valores Predeterminados del Rol.

Este rol tiene como objetivo ser minimalista: para realizar configuraciones avanzadas, puedes usar Módulos de RabbitMQ de Ansible.

Ejemplo de Playbook

- hosts: msgservers
  serial: 1  # esto es requerido solo si despliegas un clúster de RabbitMQ
  roles:
     - ansible-rabbitmq-minimalista
  vars:
    rabbitmq_conf_template: "mi_rabbit_conf/rabbitmq.conf.j2"  # esto es opcional
    rabbitmq_enabled_plugins_template: "mi_rabbit_conf/enabled_plugins.j2"  # esto es opcional
    rabbitmq_erlang_cookie: "XXXXXXXXXXXXXXXXXXXX"  # Requerido para el clustering. NOTA: este es solo un ejemplo: ¡por favor usa Ansible Vault!

Licencia

Licencia Apache 2.0

Información del Autor

Marco Bellaccini - marco.bellaccini[at!]gmail.com

https://github.com/marcobellaccini

Acerca del proyecto

Minimalistic, yet powerful and clustering-enabled RabbitMQ Ansible role.

Instalar
ansible-galaxy install marcobellaccini.ansible_rabbitmq_minimalistic
Licencia
apache-2.0
Descargas
88
Propietario
Infrastructure, security and automation at RAI - Italian national public broadcasting company. Personal account.