Sign inSign up

zimniy/rabbitmq

By zimniy

•Updated over 7 years ago

Customized build for easy clustering with LetsEncrypt's SSL

Image
0

1.0K

zimniy/rabbitmq repository overview

⁠zimniy/rabbitmq

Customized RabbitMQ container for easy clustering with LetsEncrypt's SSL

TODO: English readme

⁠Ограничения

  • Сертификаты Letsencrypt, созданные для сервера, на котором запущен Docker, ожидаются в директории /opt/ssl сервера. Они будут проброшены в контейнеры с RabbitMQ.
  • Имена хостов контейнеров должны соотвествовать именам серверов, на которых они запущены):

⁠Пример использования

  1. Создаём на сервере контейнер с будущей первой нодой кластера RabbitMQ:

    docker run -dit -h docker-rabbitmq-01.domain.tld                    \
               --name rabbit                                            \
               -p "4369:4369"                                           \
               -p "5671:5671"                                           \
               -p "15671:15671"                                         \
               -p "25672:25672"                                         \
               -p "35197:35197"                                         \
               -e "RABBITMQ_ERLANG_COOKIE=S0meL3ttersAndNumber5"        \
               -v rabbitmq_data:/var/lib/rabbitmq                       \
               -v /opt/ssl:/opt/ssl:ro                                  \
               --restart unless-stopped                                 \
               zimniy/rabbitmq:latest
    
    
  2. Устанавливаем политику HA для всего кластера (можно выполнять команду на любом сервере с рабочей нодой кластера RabbitMQ):

    docker exec rabbit rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'
    
  3. Аналогично первому пункту на втором сервере создаём контейнер с будущей второй нодой кластера:

    docker run -dit -h docker-rabbitmq-02.domain.tld                    \
               --name rabbit                                            \
               -p "4369:4369"                                           \
               -p "5671:5671"                                           \
               -p "15671:15671"                                         \
               -p "25672:25672"                                         \
               -p "35197:35197"                                         \
               -e "RABBITMQ_ERLANG_COOKIE=S0meL3ttersAndNumber5"        \
               -v rabbitmq_data:/var/lib/rabbitmq                       \
               -v /opt/ssl:/opt/ssl:ro                                  \
               --restart unless-stopped                                 \
               zimniy/rabbitmq:latest
    
    
  4. Здесь же, на втором сервере, начинаем сборку кластера, подключая вторую ноду к первой:

    docker exec rabbit rabbitmqctl stop_app
    docker exec rabbit rabbitmqctl join_cluster [email protected]
    docker exec rabbit rabbitmqctl start_app
    
    

Для подключения к кластеру RabbitMQ третьей ноды (и т.д.) повторить шаги 3 и 4 на соответствующем сервере, скорректировав имя хоста при создании контейнера. Входящие в кластер ноды равнозначны, так что третью и последующие можно подключать к любым работающим.

Tag summary

Content type

Image

Digest

Size

86 MB

Last updated

over 7 years ago

docker pull zimniy/rabbitmq