marcobellaccini.ansible_rabbitmq_minimalistic

ansible-rabbitmq-minimalistic

构建状态

简约而强大的支持集群的 RabbitMQ Ansible 角色。

该角色为 Debian 10 编写(也可能适用于其他版本和发行版,如果有,请告诉我)。

角色变量

除了角色默认值(您可以参考 这个文件), 您可能希望将自定义的 rabbitmq.conf 文件部署到服务器上。

您可以通过定义 rabbitmq_conf_template 变量让角色生成并部署您的 rabbitmq.conf 文件:

rabbitmq_conf_template: "path/to/rabbitmq.conf.j2"

该路径是相对于 playbook 目录的。

这样,您还可以通过利用 rabbitmq.conf 中的 cluster_formation.classic_config.nodes 变量来部署 RabbitMQ 集群。

例如,您可以使用如下的 rabbitmq.conf.j2 模板:

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

为了启用集群,您需要使主机使用相同的 erlang cookie

为此,您可以使用 rabbitmq_erlang_cookie 变量(请考虑使用 Ansible Vault 来加密 cookie)。

在集群时,您还需要在 playbook 中设置 serial: 1 (否则节点在尝试形成集群时可能会遇到问题)。

您还可以通过简单地指定并部署 RabbitMQ enabled_plugins 文件 的模板来启用 RabbitMQ 插件:

rabbitmq_enabled_plugins_template: "path/to/enabled_plugins.j2"

同样,路径是相对于 playbook 目录的。

有关其他变量,请参见 角色默认值

该角色旨在保持简约:为了执行高级配置,您可以使用 Ansible RabbitMQ 模块

示例 Playbook

- hosts: msgservers
  serial: 1  # 仅在您部署 RabbitMQ 集群时需要
  roles:
     - ansible-rabbitmq-minimalistic
  vars:
    rabbitmq_conf_template: "my_rabbit_conf/rabbitmq.conf.j2"  # 这是可选的
    rabbitmq_enabled_plugins_template: "my_rabbit_conf/enabled_plugins.j2"  # 这是可选的
    rabbitmq_erlang_cookie: "XXXXXXXXXXXXXXXXXXXX"  # 集群所需。注意:这只是一个示例,请使用 Ansible Vault!

许可证

Apache 许可证 2.0

作者信息

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

https://github.com/marcobellaccini

关于项目

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

安装
ansible-galaxy install marcobellaccini.ansible_rabbitmq_minimalistic
许可证
apache-2.0
下载
88
拥有者
Infrastructure, security and automation at RAI - Italian national public broadcasting company. Personal account.