marcobellaccini.ansible_rabbitmq_minimalistic
ansible-rabbitmq-minimalistic
Minimalistyczna, ale potężna rola Ansible do RabbitMQ z obsługą klastrowania.
Napisałem ją dla Debiana 10 (powinna działać również na innych wersjach i dystrybucjach - daj znać, jeśli tak będzie).
Zmienne Roli
Poza domyślnymi ustawieniami roli (z którymi możesz zapoznać się w tym pliku), prawdopodobnie zechcesz wdrożyć własny plik rabbitmq.conf na serwery.
Możesz sprawić, żeby rola wygenerowała i wdrożyła twój plik rabbitmq.conf, definiując zmienną rabbitmq_conf_template:
rabbitmq_conf_template: "path/to/rabbitmq.conf.j2"
Ścieżka jest względna względem katalogu playbooka.
Dzięki temu możesz także wdrożyć klaster RabbitMQ, korzystając z cluster_formation.classic_config.nodes w zmiennej serwera rabbitmq.conf.
Na przykład, możesz użyć szablonu rabbitmq.conf.j2 jak poniżej:
{% for host in ansible_play_hosts_all %}
cluster_formation.classic_config.nodes.{{ loop.index }} = rabbit@{{ hostvars[host]['inventory_hostname'] }}
{% endfor %}
Aby włączyć klastrowanie, musisz ustawić hosty z tym samym ciasteczkiem Erlanga.
Możesz użyć zmiennej rabbitmq_erlang_cookie (rozważ użycie Ansible Vault do zaszyfrowania ciasteczka).
Podczas klastrowania musisz także ustawić serial: 1 w swoim playbooku (w przeciwnym razie węzły mogą napotykać problemy przy próbie utworzenia klastra).
Możesz także włączyć wtyczki RabbitMQ, po prostu określając i wdrażając plik enabled_plugins z szablonu:
rabbitmq_enabled_plugins_template: "path/to/enabled_plugins.j2"
Ponownie, ścieżka jest względem katalogu playbooka.
Aby zapoznać się z innymi zmiennymi, zobacz Domyślne Ustawienia Roli.
Ta rola ma na celu być minimalistyczna: aby wykonać zaawansowane konfiguracje, możesz użyć Modułów Ansible RabbitMQ.
Przykładowy Playbook
- hosts: msgservers
serial: 1 # to jest wymagane tylko jeśli wdrażasz klaster RabbitMQ
roles:
- ansible-rabbitmq-minimalistic
vars:
rabbitmq_conf_template: "my_rabbit_conf/rabbitmq.conf.j2" # to jest opcjonalne
rabbitmq_enabled_plugins_template: "my_rabbit_conf/enabled_plugins.j2" # to jest opcjonalne
rabbitmq_erlang_cookie: "XXXXXXXXXXXXXXXXXXXX" # Wymagane do klastrowania. UWAGA: to jest tylko przykład: użyj Ansible Vault!
Licencja
Licencja Apache 2.0
Informacje o autorze
Marco Bellaccini - marco.bellaccini[at!]gmail.com
Minimalistic, yet powerful and clustering-enabled RabbitMQ Ansible role.
ansible-galaxy install marcobellaccini.ansible_rabbitmq_minimalistic