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
关于项目
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.