rabbitmq

Объявление

Долгое время без обновлений. Я снова взялся за этот плейбук, буду сливать исправления (url, проверка ключей и т.д.) в основную ветку и выпускать рабочую тегированную версию.

Затем я сосредоточусь на создании следующей ветки, которая будет версией 2.0 этого плейбука. Основные вещи, которые я планирую сделать в версии 2, - это разделить шаги установки и чистую конфигурацию. Я не хочу поддерживать множество ОС в одном плейбуке. Таким образом, вы сможете создавать свой собственный ansible-playbook-rabbitmq-install-my-little-snowflak-os :)

Спасибо всем за участие!

Плейбук RabbitMQ

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

Если вы хотите обсудить изменения или помочь с поддержкой большего числа платформ, создайте проблему.

Установка

Используйте Ansible galaxy для установки этого плейбука:

$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0

Ветка master в настоящее время считается нестабильной. Пожалуйста, избегайте использования её для чего-либо, кроме тестирования :)

Поддерживаемые системы

В данный момент поддерживаются только Debian Jessie и Wheezy на amd64. Патчи приветствуются для поддержки других дистрибутивов или ОС.

Семантическое версионирование 2.0.0

Начиная с коммита 67c608826a140868a71854ce3129b5f3d67ddcce, этот плейбук использует семантическое версионирование. Следуя спецификации, и поскольку плейбук используется в производственной среде, я хочу избежать нарушения совместимости, первая версия - 1.0.0.

Открытое API, определенное в семантическом версионировании, соответствует настройкам, доступным пользователю. Нарушение API (увеличение версии с X.Y.Z на (X+1).Y.Z) в этом контексте означает, что пользователю необходимо изменить название переменной, чтобы его плейбук заработал.

Любая новая функция, добавленная (с X.Y.Z до X.(Y+1).Z), должна иметь рабочее значение по умолчанию, которое не требует взаимодействия с пользователем. Если добавление функции требует взаимодействия с пользователем, то это не незначительное обновление, а главное.

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

Установка

Название Тип Описание По умолчанию
rabbitmq_os_package Bool Если истинно, использует стандартный пакет, предлагаемый ОС false

Окружение

Название Тип Описание По умолчанию
rabbitmq_conf_env Hash Установить переменные окружения undef

Пример:

rabbitmq_conf_env:
  RABBITMQ_ROCKS: correct

Сгенерирует:

RABBITMQ_ROCKS="correct"

Сертификат

Название Тип Описание По умолчанию
rabbitmq_cacert String Путь к файлу сертификата CA. files/rabbitmq_cacert.pem
rabbitmq_server_key String Путь к файлу ключа SSL. files/rabbitmq_server_key.pem
rabbitmq_server_cert String Путь к файлу сертификата SSL. files/rabbitmq_server_cert.pem
rabbitmq_ssl Boolean Определяет, нужно ли использовать SSL true

Файл конфигурации по умолчанию

Название Тип Описание По умолчанию
rabbitmq_conf_tcp_listeners_address String Адрес для tcp интерфейса ''
rabbitmq_conf_tcp_listeners_port Integer Порт для tcp интерфейса 5672
rabbitmq_conf_ssl_listeners_address String Адрес для ssl интерфейса '0.0.0.0'
rabbitmq_conf_ssl_listeners_port Integer Порт для ssl интерфейса 5671
rabbitmq_conf_ssl_options_cacertfile String Путь к сертификату CA "/etc/rabbitmq/ssl/cacert.pem"
rabbitmq_conf_ssl_options_certfile String Путь к сертификату сервера "/etc/rabbitmq/ssl/server_cert.pem"
rabbitmq_conf_ssl_options_keyfile String Путь к приватному ключу "/etc/rabbitmq/ssl/server_key.pem"
rabbitmq_conf_ssl_options_fail_if_no_peer_cert Boolean Значение параметра fail_if_no_peer_cert "true"

Плагины

Название Тип Описание По умолчанию
rabbitmq_new_only String Добавлять плагины как новые, не отключая другие 'no'
rabbitmq_plugins String Список плагинов для активации []

Vhost

Название Тип Описание По умолчанию
rabbitmq_vhost_definitions List Определяет список Vhost для создания []
rabbitmq_users_definitions List of hash Определяет пользователей и их vhost и пароль []

Определение конфигурации vhosts:

rabbitmq_vhost_definitions:
  - name:    vhost1
    node:    node_name # Необязательно, по умолчанию "rabbit"
    tracing: yes       # Необязательно, по умолчанию "no"

Определение конфигурации пользователей:

rabbitmq_users_definitions:
  - vhost:    vhost1
    user:     user1
    password: password1
    node:     node_name  # Необязательно, по умолчанию "rabbit"
    configure_priv: "^resource.*" # Необязательно, по умолчанию ".*"
    read_priv: "^$" # Запрет на чтение.
    write_priv: "^$" # Запрет на запись.
  - vhost:    vhost1
    user:     user2
    password: password2
    force:    no
    tags:                # Необязательно, теги пользователя
    - administrator

Федерация

Название Тип Описание По умолчанию
rabbitmq_federation Boolean Определяет, нужно ли настраивать федерацию false
rabbitmq_federation_configuration List of hashes Определяет всю настройку федерации Не определено
rabbitmq_policy_configuration List of hashes Определяет все политики федерации Не определено

Определение конфигурации upstream для федерации:

rabbitmq_federation_upstream:
  - name: имя upstream
    vhost: локальный vhost для федерации
    value: json описание федерации
    local_username: имя пользователя для федерации

Смотрите документацию RabbitMQ для возможных значений JSON.

Определение конфигурации политики:

rabbitmq_policy_configuration:
  - name: имя политики
    vhost: vhost, к которому будет применена политика
    pattern: паттерн политики
    tags: описание политики в виде словаря # пример: "ha-mode=all"

Требуемые файлы

Необходимо поместить нужные сертификаты в папку files/, например:

files/
 |- cacert.crt
 |- myserver_key.key
 |- myserver_cert.crt

А затем настроить роль:

    rabbitmq_cacert: files/cacert.crt
    rabbitmq_server_key: files/myserver_key.key
    rabbitmq_server_cert: files/myserver_cert.crt

Тестирование

Есть несколько тестов, которые пытаются создать виртуальную машину с помощью Vagrant. Запустите их с помощью:

$ vagrant up # для теста с Debian jessie
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # для теста с Centos

Вы можете изменить используемую виртуальную машину во время теста, установив переменную окружения VAGRANT_BOX_NAME на что-то другое, чем deb/jessie.

Лицензия

BSD

О проекте

RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.

Установить
ansible-galaxy install silverlogic/ansible-playbook-rabbitmq
Лицензия
Unknown
Загрузки
7594
Владелец