marcobellaccini.ansible_rabbitmq_minimalistic
ansible-rabbitmq-minimaliste
Rôle Ansible RabbitMQ minimaliste, mais puissant et permettant le clustering.
Écrit pour Debian 10 (peut fonctionner sur d'autres versions et distributions également - dans ce cas, merci de me le faire savoir).
Variables de rôle
En plus des valeurs par défaut du rôle (auxquelles vous pouvez vous référer à ce fichier), vous voudrez probablement déployer votre fichier rabbitmq.conf personnalisé sur les serveurs.
Vous pouvez faire en sorte que le rôle génère et déploie votre fichier rabbitmq.conf en définissant la variable rabbitmq_conf_template :
rabbitmq_conf_template: "chemin/vers/rabbitmq.conf.j2"
Le chemin est relatif au répertoire du playbook.
De cette manière, vous pouvez également déployer un cluster RabbitMQ simplement en utilisant la variable de serveur cluster_formation.classic_config.nodes dans rabbitmq.conf.
Par exemple, vous pouvez utiliser un modèle rabbitmq.conf.j2 comme ceci :
{% for host in ansible_play_hosts_all %}
cluster_formation.classic_config.nodes.{{ loop.index }} = rabbit@{{ hostvars[host]['inventory_hostname'] }}
{% endfor %}
Pour activer le clustering, vous devez configurer les hôtes avec le même cookie Erlang.
Pour cela, vous pouvez utiliser la variable rabbitmq_erlang_cookie (veuillez envisager d'utiliser Ansible Vault pour chiffrer le cookie).
Lors du clustering, vous devez également définir serial: 1 dans votre playbook (sinon, des problèmes peuvent survenir lors de la formation du cluster).
Vous pouvez également activer les plugins RabbitMQ en spécifiant et en déployant simplement un fichier enabled_plugins RabbitMQ à partir d'un modèle :
rabbitmq_enabled_plugins_template: "chemin/vers/enabled_plugins.j2"
Encore une fois, le chemin est relatif au répertoire du playbook.
Pour d'autres variables, voir Valeurs par défaut du rôle.
Ce rôle vise à être minimaliste : pour effectuer des configurations avancées, vous pouvez utiliser Modules RabbitMQ Ansible.
Exemple de Playbook
- hosts: msgservers
serial: 1 # ceci est requis uniquement si vous déployez un cluster RabbitMQ
roles:
- ansible-rabbitmq-minimaliste
vars:
rabbitmq_conf_template: "my_rabbit_conf/rabbitmq.conf.j2" # ceci est optionnel
rabbitmq_enabled_plugins_template: "my_rabbit_conf/enabled_plugins.j2" # ceci est optionnel
rabbitmq_erlang_cookie: "XXXXXXXXXXXXXXXXXXXX" # Requis pour le clustering. REMARQUE : ceci est juste un exemple : veuillez utiliser Ansible Vault !
Licence
Licence Apache 2.0
Informations sur l'auteur
Marco Bellaccini - marco.bellaccini[at!]gmail.com
Minimalistic, yet powerful and clustering-enabled RabbitMQ Ansible role.
ansible-galaxy install marcobellaccini.ansible_rabbitmq_minimalistic