ansible_rabbitmq_minimalistic

ansible-rabbitmq-minimalistic

Статус сборки

Минималистичная, но мощная роль Ansible для RabbitMQ с поддержкой кластеризации.

Написано для Debian 10 (может работать и на других версиях и дистрибутивах - если это так, пожалуйста, дайте мне знать).

Переменные роли

Кроме настроек по умолчанию (для которых вы можете обратиться к этому файлу), вам, вероятно, нужно будет развернуть ваш собственный файл rabbitmq.conf на серверах.

Вы можете заставить роль создать и развернуть ваш файл rabbitmq.conf, задав переменную rabbitmq_conf_template:

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

Путь указывается относительно директории плейбука.

Таким образом, вы также можете развернуть кластер RabbitMQ, просто используя серверную переменную cluster_formation.classic_config.nodes в rabbitmq.conf.

Например, вы можете использовать шаблон 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).

При создании кластера также необходимо установить serial: 1 в вашем плейбуке (в противном случае узлы могут столкнуться с проблемами при попытке сформировать кластер).

Вы также можете включать плагины RabbitMQ, просто указав и развернув файл RabbitMQ enabled_plugins из шаблона:

rabbitmq_enabled_plugins_template: "path/to/enabled_plugins.j2"

Снова, путь указывается относительно директории плейбука.

Для других переменных смотрите Настройки роли.

Эта роль нацелена на минимализм: для выполнения более сложных конфигураций вы можете использовать Модули RabbitMQ Ansible.

Пример плейбука

- 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[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
Загрузки
78
Владелец
Infrastructure, security and automation at RAI - Italian national public broadcasting company. Personal account.